home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / cl / auto-autoloads.elc.z / auto-autoloads.elc
Emacs Compiled Lisp  |  1998-05-21  |  17.1 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
100% file Emacs/XEmacs v20 byte-compiled Lisp data default
99% file data default
100% TrID Emacs/XEmacs byte-compiled Lisp (generic) default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 14 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 6a 75 73 74 69 6e 62 |piled by| justinb|
|00000020| 40 65 62 6f 6e 79 2e 63 | 72 61 79 2e 63 6f 6d 20 |@ebony.c|ray.com |
|00000030| 6f 6e 20 54 68 75 20 4a | 61 6e 20 32 32 20 31 34 |on Thu J|an 22 14|
|00000040| 3a 34 36 3a 35 30 20 31 | 39 39 38 0a 3b 3b 3b 20 |:46:50 1|998.;;; |
|00000050| 66 72 6f 6d 20 66 69 6c | 65 20 2f 68 6f 6d 65 2f |from fil|e /home/|
|00000060| 61 73 70 65 6e 30 37 2f | 6a 75 73 74 69 6e 62 2f |aspen07/|justinb/|
|00000070| 72 6f 6f 74 73 2f 66 72 | 65 65 77 61 72 65 2f 78 |roots/fr|eeware/x|
|00000080| 65 6d 61 63 73 2f 78 65 | 6d 61 63 73 2d 32 30 2e |emacs/xe|macs-20.|
|00000090| 33 2f 6c 69 73 70 2f 63 | 6c 2f 61 75 74 6f 2d 61 |3/lisp/c|l/auto-a|
|000000a0| 75 74 6f 6c 6f 61 64 73 | 2e 65 6c 0a 3b 3b 3b 20 |utoloads|.el.;;; |
|000000b0| 65 6d 61 63 73 20 76 65 | 72 73 69 6f 6e 20 32 30 |emacs ve|rsion 20|
|000000c0| 2e 33 20 22 56 61 74 69 | 63 61 6e 20 43 69 74 79 |.3 "Vati|can City|
|000000d0| 22 20 58 45 6d 61 63 73 | 20 20 4c 75 63 69 64 2e |" XEmacs| Lucid.|
|000000e0| 0a 3b 3b 3b 20 62 79 74 | 65 63 6f 6d 70 20 76 65 |.;;; byt|ecomp ve|
|000000f0| 72 73 69 6f 6e 20 32 2e | 32 35 20 58 45 6d 61 63 |rsion 2.|25 XEmac|
|00000100| 73 3b 20 32 32 2d 4d 61 | 72 2d 39 36 2e 0a 3b 3b |s; 22-Ma|r-96..;;|
|00000110| 3b 20 6f 70 74 69 6d 69 | 7a 61 74 69 6f 6e 20 69 |; optimi|zation i|
|00000120| 73 20 6f 6e 2e 0a 3b 3b | 3b 20 74 68 69 73 20 66 |s on..;;|; this f|
|00000130| 69 6c 65 20 75 73 65 73 | 20 6f 70 63 6f 64 65 73 |ile uses| opcodes|
|00000140| 20 77 68 69 63 68 20 64 | 6f 20 6e 6f 74 20 65 78 | which d|o not ex|
|00000150| 69 73 74 20 69 6e 20 45 | 6d 61 63 73 20 31 39 2e |ist in E|macs 19.|
|00000160| 0a 0a 28 69 66 20 28 61 | 6e 64 20 28 62 6f 75 6e |..(if (a|nd (boun|
|00000170| 64 70 20 27 65 6d 61 63 | 73 2d 76 65 72 73 69 6f |dp 'emac|s-versio|
|00000180| 6e 29 0a 09 20 28 6f 72 | 20 28 61 6e 64 20 28 62 |n).. (or| (and (b|
|00000190| 6f 75 6e 64 70 20 27 65 | 70 6f 63 68 3a 3a 76 65 |oundp 'e|poch::ve|
|000001a0| 72 73 69 6f 6e 29 20 65 | 70 6f 63 68 3a 3a 76 65 |rsion) e|poch::ve|
|000001b0| 72 73 69 6f 6e 29 0a 09 | 20 20 20 20 20 28 73 74 |rsion)..| (st|
|000001c0| 72 69 6e 67 2d 6c 65 73 | 73 70 20 65 6d 61 63 73 |ring-les|sp emacs|
|000001d0| 2d 76 65 72 73 69 6f 6e | 20 22 32 30 22 29 29 29 |-version| "20")))|
|000001e0| 0a 20 20 20 20 28 65 72 | 72 6f 72 20 22 60 61 75 |. (er|ror "`au|
|000001f0| 74 6f 2d 61 75 74 6f 6c | 6f 61 64 73 2e 65 6c 27 |to-autol|oads.el'|
|00000200| 20 77 61 73 20 63 6f 6d | 70 69 6c 65 64 20 66 6f | was com|piled fo|
|00000210| 72 20 45 6d 61 63 73 20 | 32 30 22 29 29 0a 0a 28 |r Emacs |20"))..(|
|00000220| 6f 72 20 28 62 6f 75 6e | 64 70 20 27 63 75 72 72 |or (boun|dp 'curr|
|00000230| 65 6e 74 2d 6c 6f 61 64 | 2d 6c 69 73 74 29 20 28 |ent-load|-list) (|
|00000240| 73 65 74 71 20 63 75 72 | 72 65 6e 74 2d 6c 6f 61 |setq cur|rent-loa|
|00000250| 64 2d 6c 69 73 74 20 6e | 69 6c 29 29 0a 0a 0a 28 |d-list n|il))...(|
|00000260| 62 79 74 65 2d 63 6f 64 | 65 20 22 c0 c1 21 ab 84 |byte-cod|e "..!..|
|00000270| c2 c3 21 88 c4 c1 21 88 | c5 c6 c7 c8 89 89 25 87 |..!...!.|......%.|
|00000280| 22 20 5b 66 65 61 74 75 | 72 65 70 20 63 6c 2d 61 |" [featu|rep cl-a|
|00000290| 75 74 6f 6c 6f 61 64 73 | 20 65 72 72 6f 72 20 22 |utoloads| error "|
|000002a0| 41 6c 72 65 61 64 79 20 | 6c 6f 61 64 65 64 22 20 |Already |loaded" |
|000002b0| 70 72 6f 76 69 64 65 20 | 61 75 74 6f 6c 6f 61 64 |provide |autoload|
|000002c0| 20 63 6c 2d 63 6f 6d 70 | 69 6c 65 2d 74 69 6d 65 | cl-comp|ile-time|
|000002d0| 2d 69 6e 69 74 20 22 63 | 6c 2d 6d 61 63 73 22 20 |-init "c|l-macs" |
|000002e0| 6e 69 6c 5d 20 36 29 0a | 23 40 39 38 20 47 65 6e |nil] 6).|#@98 Gen|
|000002f0| 65 72 61 74 65 20 61 20 | 6e 65 77 20 75 6e 69 6e |erate a |new unin|
|00000300| 74 65 72 6e 65 64 20 73 | 79 6d 62 6f 6c 2e 0a 54 |terned s|ymbol..T|
|00000310| 68 65 20 6e 61 6d 65 20 | 69 73 20 6d 61 64 65 20 |he name |is made |
|00000320| 62 79 20 61 70 70 65 6e | 64 69 6e 67 20 61 20 6e |by appen|ding a n|
|00000330| 75 6d 62 65 72 20 74 6f | 20 50 52 45 46 49 58 2c |umber to| PREFIX,|
|00000340| 20 64 65 66 61 75 6c 74 | 20 22 47 22 2e 1f 0a 28 | default| "G"...(|
|00000350| 61 75 74 6f 6c 6f 61 64 | 20 27 67 65 6e 73 79 6d |autoload| 'gensym|
|00000360| 20 22 63 6c 2d 6d 61 63 | 73 22 20 27 28 23 24 20 | "cl-mac|s" '(#$ |
|00000370| 2e 20 37 34 39 29 20 6e | 69 6c 20 6e 69 6c 29 0a |. 749) n|il nil).|
|00000380| 23 40 31 31 35 20 47 65 | 6e 65 72 61 74 65 20 61 |#@115 Ge|nerate a|
|00000390| 20 6e 65 77 20 69 6e 74 | 65 72 6e 65 64 20 73 79 | new int|erned sy|
|000003a0| 6d 62 6f 6c 20 77 69 74 | 68 20 61 20 75 6e 69 71 |mbol wit|h a uniq|
|000003b0| 75 65 20 6e 61 6d 65 2e | 0a 54 68 65 20 6e 61 6d |ue name.|.The nam|
|000003c0| 65 20 69 73 20 6d 61 64 | 65 20 62 79 20 61 70 70 |e is mad|e by app|
|000003d0| 65 6e 64 69 6e 67 20 61 | 20 6e 75 6d 62 65 72 20 |ending a| number |
|000003e0| 74 6f 20 50 52 45 46 49 | 58 2c 20 64 65 66 61 75 |to PREFI|X, defau|
|000003f0| 6c 74 20 22 47 22 2e 1f | 0a 28 61 75 74 6f 6c 6f |lt "G"..|.(autolo|
|00000400| 61 64 20 27 67 65 6e 74 | 65 6d 70 20 22 63 6c 2d |ad 'gent|emp "cl-|
|00000410| 6d 61 63 73 22 20 27 28 | 23 24 20 2e 20 39 30 32 |macs" '(|#$ . 902|
|00000420| 29 20 6e 69 6c 20 6e 69 | 6c 29 0a 23 40 31 39 39 |) nil ni|l).#@199|
|00000430| 20 28 64 65 66 75 6e 2a | 20 4e 41 4d 45 20 41 52 | (defun*| NAME AR|
|00000440| 47 4c 49 53 54 20 5b 44 | 4f 43 53 54 52 49 4e 47 |GLIST [D|OCSTRING|
|00000450| 5d 20 42 4f 44 59 2e 2e | 2e 29 3a 20 64 65 66 69 |] BODY..|.): defi|
|00000460| 6e 65 20 4e 41 4d 45 20 | 61 73 20 61 20 66 75 6e |ne NAME |as a fun|
|00000470| 63 74 69 6f 6e 2e 0a 4c | 69 6b 65 20 6e 6f 72 6d |ction..L|ike norm|
|00000480| 61 6c 20 60 64 65 66 75 | 6e 27 2c 20 65 78 63 65 |al `defu|n', exce|
|00000490| 70 74 20 41 52 47 4c 49 | 53 54 20 61 6c 6c 6f 77 |pt ARGLI|ST allow|
|000004a0| 73 20 66 75 6c 6c 20 43 | 6f 6d 6d 6f 6e 20 4c 69 |s full C|ommon Li|
|000004b0| 73 70 20 63 6f 6e 76 65 | 6e 74 69 6f 6e 73 2c 0a |sp conve|ntions,.|
|000004c0| 61 6e 64 20 42 4f 44 59 | 20 69 73 20 69 6d 70 6c |and BODY| is impl|
|000004d0| 69 63 69 74 6c 79 20 73 | 75 72 72 6f 75 6e 64 65 |icitly s|urrounde|
|000004e0| 64 20 62 79 20 28 62 6c | 6f 63 6b 20 4e 41 4d 45 |d by (bl|ock NAME|
|000004f0| 20 2e 2e 2e 29 2e 1f 0a | 28 61 75 74 6f 6c 6f 61 | ...)...|(autoloa|
|00000500| 64 20 27 64 65 66 75 6e | 2a 20 22 63 6c 2d 6d 61 |d 'defun|* "cl-ma|
|00000510| 63 73 22 20 27 28 23 24 | 20 2e 20 31 30 37 33 29 |cs" '(#$| . 1073)|
|00000520| 20 6e 69 6c 20 27 6d 61 | 63 72 6f 29 0a 23 40 32 | nil 'ma|cro).#@2|
|00000530| 30 32 20 28 64 65 66 6d | 61 63 72 6f 2a 20 4e 41 |02 (defm|acro* NA|
|00000540| 4d 45 20 41 52 47 4c 49 | 53 54 20 5b 44 4f 43 53 |ME ARGLI|ST [DOCS|
|00000550| 54 52 49 4e 47 5d 20 42 | 4f 44 59 2e 2e 2e 29 3a |TRING] B|ODY...):|
|00000560| 20 64 65 66 69 6e 65 20 | 4e 41 4d 45 20 61 73 20 | define |NAME as |
|00000570| 61 20 6d 61 63 72 6f 2e | 0a 4c 69 6b 65 20 6e 6f |a macro.|.Like no|
|00000580| 72 6d 61 6c 20 60 64 65 | 66 6d 61 63 72 6f 27 2c |rmal `de|fmacro',|
|00000590| 20 65 78 63 65 70 74 20 | 41 52 47 4c 49 53 54 20 | except |ARGLIST |
|000005a0| 61 6c 6c 6f 77 73 20 66 | 75 6c 6c 20 43 6f 6d 6d |allows f|ull Comm|
|000005b0| 6f 6e 20 4c 69 73 70 20 | 63 6f 6e 76 65 6e 74 69 |on Lisp |conventi|
|000005c0| 6f 6e 73 2c 0a 61 6e 64 | 20 42 4f 44 59 20 69 73 |ons,.and| BODY is|
|000005d0| 20 69 6d 70 6c 69 63 69 | 74 6c 79 20 73 75 72 72 | implici|tly surr|
|000005e0| 6f 75 6e 64 65 64 20 62 | 79 20 28 62 6c 6f 63 6b |ounded b|y (block|
|000005f0| 20 4e 41 4d 45 20 2e 2e | 2e 29 2e 1f 0a 28 61 75 | NAME ..|.)...(au|
|00000600| 74 6f 6c 6f 61 64 20 27 | 64 65 66 6d 61 63 72 6f |toload '|defmacro|
|00000610| 2a 20 22 63 6c 2d 6d 61 | 63 73 22 20 27 28 23 24 |* "cl-ma|cs" '(#$|
|00000620| 20 2e 20 31 33 33 31 29 | 20 6e 69 6c 20 27 6d 61 | . 1331)| nil 'ma|
|00000630| 63 72 6f 29 0a 23 40 31 | 36 38 20 28 66 75 6e 63 |cro).#@1|68 (func|
|00000640| 74 69 6f 6e 2a 20 53 59 | 4d 42 4f 4c 2d 4f 52 2d |tion* SY|MBOL-OR-|
|00000650| 4c 41 4d 42 44 41 29 3a | 20 69 6e 74 72 6f 64 75 |LAMBDA):| introdu|
|00000660| 63 65 20 61 20 66 75 6e | 63 74 69 6f 6e 2e 0a 4c |ce a fun|ction..L|
|00000670| 69 6b 65 20 6e 6f 72 6d | 61 6c 20 60 66 75 6e 63 |ike norm|al `func|
|00000680| 74 69 6f 6e 27 2c 20 65 | 78 63 65 70 74 20 74 68 |tion', e|xcept th|
|00000690| 61 74 20 69 66 20 61 72 | 67 75 6d 65 6e 74 20 69 |at if ar|gument i|
|000006a0| 73 20 61 20 6c 61 6d 62 | 64 61 20 66 6f 72 6d 2c |s a lamb|da form,|
|000006b0| 20 69 74 73 0a 41 52 47 | 4c 49 53 54 20 61 6c 6c | its.ARG|LIST all|
|000006c0| 6f 77 73 20 66 75 6c 6c | 20 43 6f 6d 6d 6f 6e 20 |ows full| Common |
|000006d0| 4c 69 73 70 20 63 6f 6e | 76 65 6e 74 69 6f 6e 73 |Lisp con|ventions|
|000006e0| 2e 1f 0a 28 61 75 74 6f | 6c 6f 61 64 20 27 66 75 |...(auto|load 'fu|
|000006f0| 6e 63 74 69 6f 6e 2a 20 | 22 63 6c 2d 6d 61 63 73 |nction* |"cl-macs|
|00000700| 22 20 27 28 23 24 20 2e | 20 31 35 39 35 29 20 6e |" '(#$ .| 1595) n|
|00000710| 69 6c 20 27 6d 61 63 72 | 6f 29 0a 28 62 79 74 65 |il 'macr|o).(byte|
|00000720| 2d 63 6f 64 65 20 22 c0 | c1 c2 c3 89 c4 25 87 22 |-code ".|.....%."|
|00000730| 20 5b 61 75 74 6f 6c 6f | 61 64 20 64 65 73 74 72 | [autolo|ad destr|
|00000740| 75 63 74 75 72 69 6e 67 | 2d 62 69 6e 64 20 22 63 |ucturing|-bind "c|
|00000750| 6c 2d 6d 61 63 73 22 20 | 6e 69 6c 20 6d 61 63 72 |l-macs" |nil macr|
|00000760| 6f 5d 20 36 29 0a 23 40 | 32 39 30 20 28 65 76 61 |o] 6).#@|290 (eva|
|00000770| 6c 2d 77 68 65 6e 20 28 | 57 48 45 4e 2e 2e 2e 29 |l-when (|WHEN...)|
|00000780| 20 42 4f 44 59 2e 2e 2e | 29 3a 20 63 6f 6e 74 72 | BODY...|): contr|
|00000790| 6f 6c 20 77 68 65 6e 20 | 42 4f 44 59 20 69 73 20 |ol when |BODY is |
|000007a0| 65 76 61 6c 75 61 74 65 | 64 2e 0a 49 66 20 60 63 |evaluate|d..If `c|
|000007b0| 6f 6d 70 69 6c 65 27 20 | 69 73 20 69 6e 20 57 48 |ompile' |is in WH|
|000007c0| 45 4e 2c 20 42 4f 44 59 | 20 69 73 20 65 76 61 6c |EN, BODY| is eval|
|000007d0| 75 61 74 65 64 20 77 68 | 65 6e 20 63 6f 6d 70 69 |uated wh|en compi|
|000007e0| 6c 65 64 20 61 74 20 74 | 6f 70 2d 6c 65 76 65 6c |led at t|op-level|
|000007f0| 2e 0a 49 66 20 60 6c 6f | 61 64 27 20 69 73 20 69 |..If `lo|ad' is i|
|00000800| 6e 20 57 48 45 4e 2c 20 | 42 4f 44 59 20 69 73 20 |n WHEN, |BODY is |
|00000810| 65 76 61 6c 75 61 74 65 | 64 20 77 68 65 6e 20 6c |evaluate|d when l|
|00000820| 6f 61 64 65 64 20 61 66 | 74 65 72 20 74 6f 70 2d |oaded af|ter top-|
|00000830| 6c 65 76 65 6c 20 63 6f | 6d 70 69 6c 65 2e 0a 49 |level co|mpile..I|
|00000840| 66 20 60 65 76 61 6c 27 | 20 69 73 20 69 6e 20 57 |f `eval'| is in W|
|00000850| 48 45 4e 2c 20 42 4f 44 | 59 20 69 73 20 65 76 61 |HEN, BOD|Y is eva|
|00000860| 6c 75 61 74 65 64 20 77 | 68 65 6e 20 69 6e 74 65 |luated w|hen inte|
|00000870| 72 70 72 65 74 65 64 20 | 6f 72 20 61 74 20 6e 6f |rpreted |or at no|
|00000880| 6e 2d 74 6f 70 2d 6c 65 | 76 65 6c 2e 1f 0a 28 61 |n-top-le|vel...(a|
|00000890| 75 74 6f 6c 6f 61 64 20 | 27 65 76 61 6c 2d 77 68 |utoload |'eval-wh|
|000008a0| 65 6e 20 22 63 6c 2d 6d | 61 63 73 22 20 27 28 23 |en "cl-m|acs" '(#|
|000008b0| 24 20 2e 20 31 39 30 30 | 29 20 6e 69 6c 20 27 6d |$ . 1900|) nil 'm|
|000008c0| 61 63 72 6f 29 0a 23 40 | 31 32 31 20 4c 69 6b 65 |acro).#@|121 Like|
|000008d0| 20 60 70 72 6f 67 6e 27 | 2c 20 62 75 74 20 65 76 | `progn'|, but ev|
|000008e0| 61 6c 75 61 74 65 73 20 | 74 68 65 20 62 6f 64 79 |aluates |the body|
|000008f0| 20 61 74 20 6c 6f 61 64 | 20 74 69 6d 65 2e 0a 54 | at load| time..T|
|00000900| 68 65 20 72 65 73 75 6c | 74 20 6f 66 20 74 68 65 |he resul|t of the|
|00000910| 20 62 6f 64 79 20 61 70 | 70 65 61 72 73 20 74 6f | body ap|pears to|
|00000920| 20 74 68 65 20 63 6f 6d | 70 69 6c 65 72 20 61 73 | the com|piler as|
|00000930| 20 61 20 71 75 6f 74 65 | 64 20 63 6f 6e 73 74 61 | a quote|d consta|
|00000940| 6e 74 2e 1f 0a 28 61 75 | 74 6f 6c 6f 61 64 20 27 |nt...(au|toload '|
|00000950| 6c 6f 61 64 2d 74 69 6d | 65 2d 76 61 6c 75 65 20 |load-tim|e-value |
|00000960| 22 63 6c 2d 6d 61 63 73 | 22 20 27 28 23 24 20 2e |"cl-macs|" '(#$ .|
|00000970| 20 32 32 35 32 29 20 6e | 69 6c 20 27 6d 61 63 72 | 2252) n|il 'macr|
|00000980| 6f 29 0a 23 40 34 36 31 | 20 28 63 61 73 65 20 45 |o).#@461| (case E|
|00000990| 58 50 52 20 43 4c 41 55 | 53 45 53 2e 2e 2e 29 3a |XPR CLAU|SES...):|
|000009a0| 20 65 76 61 6c 73 20 45 | 58 50 52 2c 20 63 68 6f | evals E|XPR, cho|
|000009b0| 6f 73 65 73 20 66 72 6f | 6d 20 43 4c 41 55 53 45 |oses fro|m CLAUSE|
|000009c0| 53 20 6f 6e 20 74 68 61 | 74 20 76 61 6c 75 65 2e |S on tha|t value.|
|000009d0| 0a 45 61 63 68 20 63 6c | 61 75 73 65 20 6c 6f 6f |.Each cl|ause loo|
|000009e0| 6b 73 20 6c 69 6b 65 20 | 28 4b 45 59 4c 49 53 54 |ks like |(KEYLIST|
|000009f0| 20 42 4f 44 59 2e 2e 2e | 29 2e 20 20 45 58 50 52 | BODY...|). EXPR|
|00000a00| 20 69 73 20 65 76 61 6c | 75 61 74 65 64 20 61 6e | is eval|uated an|
|00000a10| 64 20 63 6f 6d 70 61 72 | 65 64 0a 61 67 61 69 6e |d compar|ed.again|
|00000a20| 73 74 20 65 61 63 68 20 | 6b 65 79 20 69 6e 20 65 |st each |key in e|
|00000a30| 61 63 68 20 4b 45 59 4c | 49 53 54 3b 20 74 68 65 |ach KEYL|IST; the|
|00000a40| 20 63 6f 72 72 65 73 70 | 6f 6e 64 69 6e 67 20 42 | corresp|onding B|
|00000a50| 4f 44 59 20 69 73 20 65 | 76 61 6c 75 61 74 65 64 |ODY is e|valuated|
|00000a60| 2e 0a 49 66 20 6e 6f 20 | 63 6c 61 75 73 65 20 73 |..If no |clause s|
|00000a70| 75 63 63 65 65 64 73 2c | 20 63 61 73 65 20 72 65 |ucceeds,| case re|
|00000a80| 74 75 72 6e 73 20 6e 69 | 6c 2e 20 20 41 20 73 69 |turns ni|l. A si|
|00000a90| 6e 67 6c 65 20 61 74 6f | 6d 20 6d 61 79 20 62 65 |ngle ato|m may be|
|00000aa0| 20 75 73 65 64 20 69 6e | 0a 70 6c 61 63 65 20 6f | used in|.place o|
|00000ab0| 66 20 61 20 4b 45 59 4c | 49 53 54 20 6f 66 20 6f |f a KEYL|IST of o|
|00000ac0| 6e 65 20 61 74 6f 6d 2e | 20 20 41 20 4b 45 59 4c |ne atom.| A KEYL|
|00000ad0| 49 53 54 20 6f 66 20 60 | 74 27 20 6f 72 20 60 6f |IST of `|t' or `o|
|00000ae0| 74 68 65 72 77 69 73 65 | 27 20 69 73 0a 61 6c 6c |therwise|' is.all|
|00000af0| 6f 77 65 64 20 6f 6e 6c | 79 20 69 6e 20 74 68 65 |owed onl|y in the|
|00000b00| 20 66 69 6e 61 6c 20 63 | 6c 61 75 73 65 2c 20 61 | final c|lause, a|
|00000b10| 6e 64 20 6d 61 74 63 68 | 65 73 20 69 66 20 6e 6f |nd match|es if no|
|00000b20| 20 6f 74 68 65 72 20 6b | 65 79 73 20 6d 61 74 63 | other k|eys matc|
|00000b30| 68 2e 0a 4b 65 79 20 76 | 61 6c 75 65 73 20 61 72 |h..Key v|alues ar|
|00000b40| 65 20 63 6f 6d 70 61 72 | 65 64 20 62 79 20 60 65 |e compar|ed by `e|
|00000b50| 71 6c 27 2e 1f 0a 28 61 | 75 74 6f 6c 6f 61 64 20 |ql'...(a|utoload |
|00000b60| 27 63 61 73 65 20 22 63 | 6c 2d 6d 61 63 73 22 20 |'case "c|l-macs" |
|00000b70| 27 28 23 24 20 2e 20 32 | 34 34 31 29 20 6e 69 6c |'(#$ . 2|441) nil|
|00000b80| 20 27 6d 61 63 72 6f 29 | 0a 23 40 31 30 33 20 28 | 'macro)|.#@103 (|
|00000b90| 65 63 61 73 65 20 45 58 | 50 52 20 43 4c 41 55 53 |ecase EX|PR CLAUS|
|00000ba0| 45 53 2e 2e 2e 29 3a 20 | 6c 69 6b 65 20 60 63 61 |ES...): |like `ca|
|00000bb0| 73 65 27 2c 20 62 75 74 | 20 65 72 72 6f 72 20 69 |se', but| error i|
|00000bc0| 66 20 6e 6f 20 63 61 73 | 65 20 66 69 74 73 2e 0a |f no cas|e fits..|
|00000bd0| 60 6f 74 68 65 72 77 69 | 73 65 27 2d 63 6c 61 75 |`otherwi|se'-clau|
|00000be0| 73 65 73 20 61 72 65 20 | 6e 6f 74 20 61 6c 6c 6f |ses are |not allo|
|00000bf0| 77 65 64 2e 1f 0a 28 61 | 75 74 6f 6c 6f 61 64 20 |wed...(a|utoload |
|00000c00| 27 65 63 61 73 65 20 22 | 63 6c 2d 6d 61 63 73 22 |'ecase "|cl-macs"|
|00000c10| 20 27 28 23 24 20 2e 20 | 32 39 35 39 29 20 6e 69 | '(#$ . |2959) ni|
|00000c20| 6c 20 27 6d 61 63 72 6f | 29 0a 23 40 33 34 38 20 |l 'macro|).#@348 |
|00000c30| 28 74 79 70 65 63 61 73 | 65 20 45 58 50 52 20 43 |(typecas|e EXPR C|
|00000c40| 4c 41 55 53 45 53 2e 2e | 2e 29 3a 20 65 76 61 6c |LAUSES..|.): eval|
|00000c50| 73 20 45 58 50 52 2c 20 | 63 68 6f 6f 73 65 73 20 |s EXPR, |chooses |
|00000c60| 66 72 6f 6d 20 43 4c 41 | 55 53 45 53 20 6f 6e 20 |from CLA|USES on |
|00000c70| 74 68 61 74 20 76 61 6c | 75 65 2e 0a 45 61 63 68 |that val|ue..Each|
|00000c80| 20 63 6c 61 75 73 65 20 | 6c 6f 6f 6b 73 20 6c 69 | clause |looks li|
|00000c90| 6b 65 20 28 54 59 50 45 | 20 42 4f 44 59 2e 2e 2e |ke (TYPE| BODY...|
|00000ca0| 29 2e 20 20 45 58 50 52 | 20 69 73 20 65 76 61 6c |). EXPR| is eval|
|00000cb0| 75 61 74 65 64 20 61 6e | 64 2c 20 69 66 20 69 74 |uated an|d, if it|
|00000cc0| 0a 73 61 74 69 73 66 69 | 65 73 20 54 59 50 45 2c |.satisfi|es TYPE,|
|00000cd0| 20 74 68 65 20 63 6f 72 | 72 65 73 70 6f 6e 64 69 | the cor|respondi|
|00000ce0| 6e 67 20 42 4f 44 59 20 | 69 73 20 65 76 61 6c 75 |ng BODY |is evalu|
|00000cf0| 61 74 65 64 2e 20 20 49 | 66 20 6e 6f 20 63 6c 61 |ated. I|f no cla|
|00000d00| 75 73 65 20 73 75 63 63 | 65 65 64 73 2c 0a 74 79 |use succ|eeds,.ty|
|00000d10| 70 65 63 61 73 65 20 72 | 65 74 75 72 6e 73 20 6e |pecase r|eturns n|
|00000d20| 69 6c 2e 20 20 41 20 54 | 59 50 45 20 6f 66 20 60 |il. A T|YPE of `|
|00000d30| 74 27 20 6f 72 20 60 6f | 74 68 65 72 77 69 73 65 |t' or `o|therwise|
|00000d40| 27 20 69 73 20 61 6c 6c | 6f 77 65 64 20 6f 6e 6c |' is all|owed onl|
|00000d50| 79 20 69 6e 20 74 68 65 | 0a 66 69 6e 61 6c 20 63 |y in the|.final c|
|00000d60| 6c 61 75 73 65 2c 20 61 | 6e 64 20 6d 61 74 63 68 |lause, a|nd match|
|00000d70| 65 73 20 69 66 20 6e 6f | 20 6f 74 68 65 72 20 6b |es if no| other k|
|00000d80| 65 79 73 20 6d 61 74 63 | 68 2e 1f 0a 28 61 75 74 |eys matc|h...(aut|
|00000d90| 6f 6c 6f 61 64 20 27 74 | 79 70 65 63 61 73 65 20 |oload 't|ypecase |
|00000da0| 22 63 6c 2d 6d 61 63 73 | 22 20 27 28 23 24 20 2e |"cl-macs|" '(#$ .|
|00000db0| 20 33 31 32 30 29 20 6e | 69 6c 20 27 6d 61 63 72 | 3120) n|il 'macr|
|00000dc0| 6f 29 0a 23 40 31 31 31 | 20 28 65 74 79 70 65 63 |o).#@111| (etypec|
|00000dd0| 61 73 65 20 45 58 50 52 | 20 43 4c 41 55 53 45 53 |ase EXPR| CLAUSES|
|00000de0| 2e 2e 2e 29 3a 20 6c 69 | 6b 65 20 60 74 79 70 65 |...): li|ke `type|
|00000df0| 63 61 73 65 27 2c 20 62 | 75 74 20 65 72 72 6f 72 |case', b|ut error|
|00000e00| 20 69 66 20 6e 6f 20 63 | 61 73 65 20 66 69 74 73 | if no c|ase fits|
|00000e10| 2e 0a 60 6f 74 68 65 72 | 77 69 73 65 27 2d 63 6c |..`other|wise'-cl|
|00000e20| 61 75 73 65 73 20 61 72 | 65 20 6e 6f 74 20 61 6c |auses ar|e not al|
|00000e30| 6c 6f 77 65 64 2e 1f 0a | 28 61 75 74 6f 6c 6f 61 |lowed...|(autoloa|
|00000e40| 64 20 27 65 74 79 70 65 | 63 61 73 65 20 22 63 6c |d 'etype|case "cl|
|00000e50| 2d 6d 61 63 73 22 20 27 | 28 23 24 20 2e 20 33 35 |-macs" '|(#$ . 35|
|00000e60| 32 39 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |29) nil |'macro).|
|00000e70| 23 40 35 32 36 20 28 62 | 6c 6f 63 6b 20 4e 41 4d |#@526 (b|lock NAM|
|00000e80| 45 20 42 4f 44 59 2e 2e | 2e 29 3a 20 64 65 66 69 |E BODY..|.): defi|
|00000e90| 6e 65 20 61 20 6c 65 78 | 69 63 61 6c 6c 79 2d 73 |ne a lex|ically-s|
|00000ea0| 63 6f 70 65 64 20 62 6c | 6f 63 6b 20 6e 61 6d 65 |coped bl|ock name|
|00000eb0| 64 20 4e 41 4d 45 2e 0a | 4e 41 4d 45 20 6d 61 79 |d NAME..|NAME may|
|00000ec0| 20 62 65 20 61 6e 79 20 | 73 79 6d 62 6f 6c 2e 20 | be any |symbol. |
|00000ed0| 20 43 6f 64 65 20 69 6e | 73 69 64 65 20 74 68 65 | Code in|side the|
|00000ee0| 20 42 4f 44 59 20 66 6f | 72 6d 73 20 63 61 6e 20 | BODY fo|rms can |
|00000ef0| 63 61 6c 6c 20 60 72 65 | 74 75 72 6e 2d 66 72 6f |call `re|turn-fro|
|00000f00| 6d 27 0a 74 6f 20 6a 75 | 6d 70 20 70 72 65 6d 61 |m'.to ju|mp prema|
|00000f10| 74 75 72 65 6c 79 20 6f | 75 74 20 6f 66 20 74 68 |turely o|ut of th|
|00000f20| 65 20 62 6c 6f 63 6b 2e | 20 20 54 68 69 73 20 64 |e block.| This d|
|00000f30| 69 66 66 65 72 73 20 66 | 72 6f 6d 20 60 63 61 74 |iffers f|rom `cat|
|00000f40| 63 68 27 20 61 6e 64 20 | 60 74 68 72 6f 77 27 0a |ch' and |`throw'.|
|00000f50| 69 6e 20 74 77 6f 20 72 | 65 73 70 65 63 74 73 3a |in two r|espects:|
|00000f60| 20 20 46 69 72 73 74 2c | 20 74 68 65 20 4e 41 4d | First,| the NAM|
|00000f70| 45 20 69 73 20 61 6e 20 | 75 6e 65 76 61 6c 75 61 |E is an |unevalua|
|00000f80| 74 65 64 20 73 79 6d 62 | 6f 6c 20 72 61 74 68 65 |ted symb|ol rathe|
|00000f90| 72 20 74 68 61 6e 20 61 | 0a 71 75 6f 74 65 64 20 |r than a|.quoted |
|00000fa0| 73 79 6d 62 6f 6c 20 6f | 72 20 6f 74 68 65 72 20 |symbol o|r other |
|00000fb0| 66 6f 72 6d 3b 20 61 6e | 64 20 73 65 63 6f 6e 64 |form; an|d second|
|00000fc0| 2c 20 4e 41 4d 45 20 69 | 73 20 6c 65 78 69 63 61 |, NAME i|s lexica|
|00000fd0| 6c 6c 79 20 72 61 74 68 | 65 72 20 74 68 61 6e 0a |lly rath|er than.|
|00000fe0| 64 79 6e 61 6d 69 63 61 | 6c 6c 79 20 73 63 6f 70 |dynamica|lly scop|
|00000ff0| 65 64 3a 20 20 4f 6e 6c | 79 20 72 65 66 65 72 65 |ed: Onl|y refere|
|00001000| 6e 63 65 73 20 74 6f 20 | 69 74 20 77 69 74 68 69 |nces to |it withi|
|00001010| 6e 20 42 4f 44 59 20 77 | 69 6c 6c 20 77 6f 72 6b |n BODY w|ill work|
|00001020| 2e 20 20 54 68 65 73 65 | 0a 72 65 66 65 72 65 6e |. These|.referen|
|00001030| 63 65 73 20 6d 61 79 20 | 61 70 70 65 61 72 20 69 |ces may |appear i|
|00001040| 6e 73 69 64 65 20 6d 61 | 63 72 6f 20 65 78 70 61 |nside ma|cro expa|
|00001050| 6e 73 69 6f 6e 73 2c 20 | 62 75 74 20 6e 6f 74 20 |nsions, |but not |
|00001060| 69 6e 73 69 64 65 20 66 | 75 6e 63 74 69 6f 6e 73 |inside f|unctions|
|00001070| 0a 63 61 6c 6c 65 64 20 | 66 72 6f 6d 20 42 4f 44 |.called |from BOD|
|00001080| 59 2e 1f 0a 28 61 75 74 | 6f 6c 6f 61 64 20 27 62 |Y...(aut|oload 'b|
|00001090| 6c 6f 63 6b 20 22 63 6c | 2d 6d 61 63 73 22 20 27 |lock "cl|-macs" '|
|000010a0| 28 23 24 20 2e 20 33 37 | 30 32 29 20 6e 69 6c 20 |(#$ . 37|02) nil |
|000010b0| 27 6d 61 63 72 6f 29 0a | 23 40 31 30 33 20 28 72 |'macro).|#@103 (r|
|000010c0| 65 74 75 72 6e 20 5b 52 | 45 53 55 4c 54 5d 29 3a |eturn [R|ESULT]):|
|000010d0| 20 72 65 74 75 72 6e 20 | 66 72 6f 6d 20 74 68 65 | return |from the|
|000010e0| 20 62 6c 6f 63 6b 20 6e | 61 6d 65 64 20 6e 69 6c | block n|amed nil|
|000010f0| 2e 0a 54 68 69 73 20 69 | 73 20 65 71 75 69 76 61 |..This i|s equiva|
|00001100| 6c 65 6e 74 20 74 6f 20 | 60 28 72 65 74 75 72 6e |lent to |`(return|
|00001110| 2d 66 72 6f 6d 20 6e 69 | 6c 20 52 45 53 55 4c 54 |-from ni|l RESULT|
|00001120| 29 27 2e 1f 0a 28 61 75 | 74 6f 6c 6f 61 64 20 27 |)'...(au|toload '|
|00001130| 72 65 74 75 72 6e 20 22 | 63 6c 2d 6d 61 63 73 22 |return "|cl-macs"|
|00001140| 20 27 28 23 24 20 2e 20 | 34 32 38 36 29 20 6e 69 | '(#$ . |4286) ni|
|00001150| 6c 20 27 6d 61 63 72 6f | 29 0a 23 40 33 32 34 20 |l 'macro|).#@324 |
|00001160| 28 72 65 74 75 72 6e 2d | 66 72 6f 6d 20 4e 41 4d |(return-|from NAM|
|00001170| 45 20 5b 52 45 53 55 4c | 54 5d 29 3a 20 72 65 74 |E [RESUL|T]): ret|
|00001180| 75 72 6e 20 66 72 6f 6d | 20 74 68 65 20 62 6c 6f |urn from| the blo|
|00001190| 63 6b 20 6e 61 6d 65 64 | 20 4e 41 4d 45 2e 0a 54 |ck named| NAME..T|
|000011a0| 68 69 73 20 6a 75 6d 70 | 20 6f 75 74 20 74 6f 20 |his jump| out to |
|000011b0| 74 68 65 20 69 6e 6e 65 | 72 6d 6f 73 74 20 65 6e |the inne|rmost en|
|000011c0| 63 6c 6f 73 69 6e 67 20 | 60 28 62 6c 6f 63 6b 20 |closing |`(block |
|000011d0| 4e 41 4d 45 20 2e 2e 2e | 29 27 20 66 6f 72 6d 2c |NAME ...|)' form,|
|000011e0| 0a 72 65 74 75 72 6e 69 | 6e 67 20 52 45 53 55 4c |.returni|ng RESUL|
|000011f0| 54 20 66 72 6f 6d 20 74 | 68 61 74 20 66 6f 72 6d |T from t|hat form|
|00001200| 20 28 6f 72 20 6e 69 6c | 20 69 66 20 52 45 53 55 | (or nil| if RESU|
|00001210| 4c 54 20 69 73 20 6f 6d | 69 74 74 65 64 29 2e 0a |LT is om|itted)..|
|00001220| 54 68 69 73 20 69 73 20 | 63 6f 6d 70 61 74 69 62 |This is |compatib|
|00001230| 6c 65 20 77 69 74 68 20 | 43 6f 6d 6d 6f 6e 20 4c |le with |Common L|
|00001240| 69 73 70 2c 20 62 75 74 | 20 6e 6f 74 65 20 74 68 |isp, but| note th|
|00001250| 61 74 20 60 64 65 66 75 | 6e 27 20 61 6e 64 0a 60 |at `defu|n' and.`|
|00001260| 64 65 66 6d 61 63 72 6f | 27 20 64 6f 20 6e 6f 74 |defmacro|' do not|
|00001270| 20 63 72 65 61 74 65 20 | 69 6d 70 6c 69 63 69 74 | create |implicit|
|00001280| 20 62 6c 6f 63 6b 73 20 | 61 73 20 74 68 65 79 20 | blocks |as they |
|00001290| 64 6f 20 69 6e 20 43 6f | 6d 6d 6f 6e 20 4c 69 73 |do in Co|mmon Lis|
|000012a0| 70 2e 1f 0a 28 61 75 74 | 6f 6c 6f 61 64 20 27 72 |p...(aut|oload 'r|
|000012b0| 65 74 75 72 6e 2d 66 72 | 6f 6d 20 22 63 6c 2d 6d |eturn-fr|om "cl-m|
|000012c0| 61 63 73 22 20 27 28 23 | 24 20 2e 20 34 34 34 38 |acs" '(#|$ . 4448|
|000012d0| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 23 40 |) nil 'm|acro).#@|
|000012e0| 37 32 35 20 28 6c 6f 6f | 70 20 43 4c 41 55 53 45 |725 (loo|p CLAUSE|
|000012f0| 2e 2e 2e 29 3a 20 54 68 | 65 20 43 6f 6d 6d 6f 6e |...): Th|e Common|
|00001300| 20 4c 69 73 70 20 60 6c | 6f 6f 70 27 20 6d 61 63 | Lisp `l|oop' mac|
|00001310| 72 6f 2e 0a 56 61 6c 69 | 64 20 63 6c 61 75 73 65 |ro..Vali|d clause|
|00001320| 73 20 61 72 65 3a 0a 20 | 20 66 6f 72 20 56 41 52 |s are:. | for VAR|
|00001330| 20 66 72 6f 6d 2f 75 70 | 66 72 6f 6d 2f 64 6f 77 | from/up|from/dow|
|00001340| 6e 66 72 6f 6d 20 4e 55 | 4d 20 74 6f 2f 75 70 74 |nfrom NU|M to/upt|
|00001350| 6f 2f 64 6f 77 6e 74 6f | 2f 61 62 6f 76 65 2f 62 |o/downto|/above/b|
|00001360| 65 6c 6f 77 20 4e 55 4d | 20 62 79 20 4e 55 4d 2c |elow NUM| by NUM,|
|00001370| 0a 20 20 66 6f 72 20 56 | 41 52 20 69 6e 20 4c 49 |. for V|AR in LI|
|00001380| 53 54 20 62 79 20 46 55 | 4e 43 2c 20 66 6f 72 20 |ST by FU|NC, for |
|00001390| 56 41 52 20 6f 6e 20 4c | 49 53 54 20 62 79 20 46 |VAR on L|IST by F|
|000013a0| 55 4e 43 2c 20 66 6f 72 | 20 56 41 52 20 3d 20 49 |UNC, for| VAR = I|
|000013b0| 4e 49 54 20 74 68 65 6e | 20 45 58 50 52 2c 0a 20 |NIT then| EXPR,. |
|000013c0| 20 66 6f 72 20 56 41 52 | 20 61 63 72 6f 73 73 20 | for VAR| across |
|000013d0| 41 52 52 41 59 2c 20 72 | 65 70 65 61 74 20 4e 55 |ARRAY, r|epeat NU|
|000013e0| 4d 2c 20 77 69 74 68 20 | 56 41 52 20 3d 20 49 4e |M, with |VAR = IN|
|000013f0| 49 54 2c 20 77 68 69 6c | 65 20 43 4f 4e 44 2c 20 |IT, whil|e COND, |
|00001400| 75 6e 74 69 6c 20 43 4f | 4e 44 2c 0a 20 20 61 6c |until CO|ND,. al|
|00001410| 77 61 79 73 20 43 4f 4e | 44 2c 20 6e 65 76 65 72 |ways CON|D, never|
|00001420| 20 43 4f 4e 44 2c 20 74 | 68 65 72 65 69 73 20 43 | COND, t|hereis C|
|00001430| 4f 4e 44 2c 20 63 6f 6c | 6c 65 63 74 20 45 58 50 |OND, col|lect EXP|
|00001440| 52 20 69 6e 74 6f 20 56 | 41 52 2c 0a 20 20 61 70 |R into V|AR,. ap|
|00001450| 70 65 6e 64 20 45 58 50 | 52 20 69 6e 74 6f 20 56 |pend EXP|R into V|
|00001460| 41 52 2c 20 6e 63 6f 6e | 63 20 45 58 50 52 20 69 |AR, ncon|c EXPR i|
|00001470| 6e 74 6f 20 56 41 52 2c | 20 73 75 6d 20 45 58 50 |nto VAR,| sum EXP|
|00001480| 52 20 69 6e 74 6f 20 56 | 41 52 2c 0a 20 20 63 6f |R into V|AR,. co|
|00001490| 75 6e 74 20 45 58 50 52 | 20 69 6e 74 6f 20 56 41 |unt EXPR| into VA|
|000014a0| 52 2c 20 6d 61 78 69 6d | 69 7a 65 20 45 58 50 52 |R, maxim|ize EXPR|
|000014b0| 20 69 6e 74 6f 20 56 41 | 52 2c 20 6d 69 6e 69 6d | into VA|R, minim|
|000014c0| 69 7a 65 20 45 58 50 52 | 20 69 6e 74 6f 20 56 41 |ize EXPR| into VA|
|000014d0| 52 2c 0a 20 20 69 66 20 | 43 4f 4e 44 20 43 4c 41 |R,. if |COND CLA|
|000014e0| 55 53 45 20 5b 61 6e 64 | 20 43 4c 41 55 53 45 5d |USE [and| CLAUSE]|
|000014f0| 2e 2e 2e 20 65 6c 73 65 | 20 43 4c 41 55 53 45 20 |... else| CLAUSE |
|00001500| 5b 61 6e 64 20 43 4c 41 | 55 53 45 2e 2e 2e 5d 2c |[and CLA|USE...],|
|00001510| 0a 20 20 75 6e 6c 65 73 | 73 20 43 4f 4e 44 20 43 |. unles|s COND C|
|00001520| 4c 41 55 53 45 20 5b 61 | 6e 64 20 43 4c 41 55 53 |LAUSE [a|nd CLAUS|
|00001530| 45 5d 2e 2e 2e 20 65 6c | 73 65 20 43 4c 41 55 53 |E]... el|se CLAUS|
|00001540| 45 20 5b 61 6e 64 20 43 | 4c 41 55 53 45 2e 2e 2e |E [and C|LAUSE...|
|00001550| 5d 2c 0a 20 20 64 6f 20 | 45 58 50 52 53 2e 2e 2e |],. do |EXPRS...|
|00001560| 2c 20 69 6e 69 74 69 61 | 6c 6c 79 20 45 58 50 52 |, initia|lly EXPR|
|00001570| 53 2e 2e 2e 2c 20 66 69 | 6e 61 6c 6c 79 20 45 58 |S..., fi|nally EX|
|00001580| 50 52 53 2e 2e 2e 2c 20 | 72 65 74 75 72 6e 20 45 |PRS..., |return E|
|00001590| 58 50 52 2c 0a 20 20 66 | 69 6e 61 6c 6c 79 20 72 |XPR,. f|inally r|
|000015a0| 65 74 75 72 6e 20 45 58 | 50 52 2c 20 6e 61 6d 65 |eturn EX|PR, name|
|000015b0| 64 20 4e 41 4d 45 2e 1f | 0a 28 61 75 74 6f 6c 6f |d NAME..|.(autolo|
|000015c0| 61 64 20 27 6c 6f 6f 70 | 20 22 63 6c 2d 6d 61 63 |ad 'loop| "cl-mac|
|000015d0| 73 22 20 27 28 23 24 20 | 2e 20 34 38 33 36 29 20 |s" '(#$ |. 4836) |
|000015e0| 6e 69 6c 20 27 6d 61 63 | 72 6f 29 0a 23 40 39 38 |nil 'mac|ro).#@98|
|000015f0| 20 54 68 65 20 43 6f 6d | 6d 6f 6e 20 4c 69 73 70 | The Com|mon Lisp|
|00001600| 20 60 64 6f 27 20 6c 6f | 6f 70 2e 0a 46 6f 72 6d | `do' lo|op..Form|
|00001610| 61 74 20 69 73 3a 20 28 | 64 6f 20 28 28 56 41 52 |at is: (|do ((VAR|
|00001620| 20 49 4e 49 54 20 5b 53 | 54 45 50 5d 29 2e 2e 2e | INIT [S|TEP])...|
|00001630| 29 20 28 45 4e 44 2d 54 | 45 53 54 20 5b 52 45 53 |) (END-T|EST [RES|
|00001640| 55 4c 54 2e 2e 2e 5d 29 | 20 42 4f 44 59 2e 2e 2e |ULT...])| BODY...|
|00001650| 29 1f 0a 28 61 75 74 6f | 6c 6f 61 64 20 27 64 6f |)..(auto|load 'do|
|00001660| 20 22 63 6c 2d 6d 61 63 | 73 22 20 27 28 23 24 20 | "cl-mac|s" '(#$ |
|00001670| 2e 20 35 36 31 37 29 20 | 6e 69 6c 20 27 6d 61 63 |. 5617) |nil 'mac|
|00001680| 72 6f 29 0a 23 40 31 30 | 30 20 54 68 65 20 43 6f |ro).#@10|0 The Co|
|00001690| 6d 6d 6f 6e 20 4c 69 73 | 70 20 60 64 6f 2a 27 20 |mmon Lis|p `do*' |
|000016a0| 6c 6f 6f 70 2e 0a 46 6f | 72 6d 61 74 20 69 73 3a |loop..Fo|rmat is:|
|000016b0| 20 28 64 6f 2a 20 28 28 | 56 41 52 20 49 4e 49 54 | (do* ((|VAR INIT|
|000016c0| 20 5b 53 54 45 50 5d 29 | 2e 2e 2e 29 20 28 45 4e | [STEP])|...) (EN|
|000016d0| 44 2d 54 45 53 54 20 5b | 52 45 53 55 4c 54 2e 2e |D-TEST [|RESULT..|
|000016e0| 2e 5d 29 20 42 4f 44 59 | 2e 2e 2e 29 1f 0a 28 61 |.]) BODY|...)..(a|
|000016f0| 75 74 6f 6c 6f 61 64 20 | 27 64 6f 2a 20 22 63 6c |utoload |'do* "cl|
|00001700| 2d 6d 61 63 73 22 20 27 | 28 23 24 20 2e 20 35 37 |-macs" '|(#$ . 57|
|00001710| 37 30 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |70) nil |'macro).|
|00001720| 23 40 31 37 35 20 28 64 | 6f 6c 69 73 74 20 28 56 |#@175 (d|olist (V|
|00001730| 41 52 20 4c 49 53 54 20 | 5b 52 45 53 55 4c 54 5d |AR LIST |[RESULT]|
|00001740| 29 20 42 4f 44 59 2e 2e | 2e 29 3a 20 6c 6f 6f 70 |) BODY..|.): loop|
|00001750| 20 6f 76 65 72 20 61 20 | 6c 69 73 74 2e 0a 45 76 | over a |list..Ev|
|00001760| 61 6c 75 61 74 65 20 42 | 4f 44 59 20 77 69 74 68 |aluate B|ODY with|
|00001770| 20 56 41 52 20 62 6f 75 | 6e 64 20 74 6f 20 65 61 | VAR bou|nd to ea|
|00001780| 63 68 20 60 63 61 72 27 | 20 66 72 6f 6d 20 4c 49 |ch `car'| from LI|
|00001790| 53 54 2c 20 69 6e 20 74 | 75 72 6e 2e 0a 54 68 65 |ST, in t|urn..The|
|000017a0| 6e 20 65 76 61 6c 75 61 | 74 65 20 52 45 53 55 4c |n evalua|te RESUL|
|000017b0| 54 20 74 6f 20 67 65 74 | 20 72 65 74 75 72 6e 20 |T to get| return |
|000017c0| 76 61 6c 75 65 2c 20 64 | 65 66 61 75 6c 74 20 6e |value, d|efault n|
|000017d0| 69 6c 2e 1f 0a 28 61 75 | 74 6f 6c 6f 61 64 20 27 |il...(au|toload '|
|000017e0| 64 6f 6c 69 73 74 20 22 | 63 6c 2d 6d 61 63 73 22 |dolist "|cl-macs"|
|000017f0| 20 27 28 23 24 20 2e 20 | 35 39 32 36 29 20 6e 69 | '(#$ . |5926) ni|
|00001800| 6c 20 27 6d 61 63 72 6f | 29 0a 23 40 32 32 31 20 |l 'macro|).#@221 |
|00001810| 28 64 6f 74 69 6d 65 73 | 20 28 56 41 52 20 43 4f |(dotimes| (VAR CO|
|00001820| 55 4e 54 20 5b 52 45 53 | 55 4c 54 5d 29 20 42 4f |UNT [RES|ULT]) BO|
|00001830| 44 59 2e 2e 2e 29 3a 20 | 6c 6f 6f 70 20 61 20 63 |DY...): |loop a c|
|00001840| 65 72 74 61 69 6e 20 6e | 75 6d 62 65 72 20 6f 66 |ertain n|umber of|
|00001850| 20 74 69 6d 65 73 2e 0a | 45 76 61 6c 75 61 74 65 | times..|Evaluate|
|00001860| 20 42 4f 44 59 20 77 69 | 74 68 20 56 41 52 20 62 | BODY wi|th VAR b|
|00001870| 6f 75 6e 64 20 74 6f 20 | 73 75 63 63 65 73 73 69 |ound to |successi|
|00001880| 76 65 20 69 6e 74 65 67 | 65 72 73 20 66 72 6f 6d |ve integ|ers from|
|00001890| 20 30 2c 20 69 6e 63 6c | 75 73 69 76 65 2c 0a 74 | 0, incl|usive,.t|
|000018a0| 6f 20 43 4f 55 4e 54 2c | 20 65 78 63 6c 75 73 69 |o COUNT,| exclusi|
|000018b0| 76 65 2e 20 20 54 68 65 | 6e 20 65 76 61 6c 75 61 |ve. The|n evalua|
|000018c0| 74 65 20 52 45 53 55 4c | 54 20 74 6f 20 67 65 74 |te RESUL|T to get|
|000018d0| 20 72 65 74 75 72 6e 20 | 76 61 6c 75 65 2c 20 64 | return |value, d|
|000018e0| 65 66 61 75 6c 74 0a 6e | 69 6c 2e 1f 0a 28 61 75 |efault.n|il...(au|
|000018f0| 74 6f 6c 6f 61 64 20 27 | 64 6f 74 69 6d 65 73 20 |toload '|dotimes |
|00001900| 22 63 6c 2d 6d 61 63 73 | 22 20 27 28 23 24 20 2e |"cl-macs|" '(#$ .|
|00001910| 20 36 31 36 30 29 20 6e | 69 6c 20 27 6d 61 63 72 | 6160) n|il 'macr|
|00001920| 6f 29 0a 23 40 31 35 36 | 20 28 64 6f 73 79 6d 62 |o).#@156| (dosymb|
|00001930| 6f 6c 73 20 28 56 41 52 | 20 5b 4f 42 41 52 52 41 |ols (VAR| [OBARRA|
|00001940| 59 20 5b 52 45 53 55 4c | 54 5d 5d 29 20 42 4f 44 |Y [RESUL|T]]) BOD|
|00001950| 59 2e 2e 2e 29 3a 20 6c | 6f 6f 70 20 6f 76 65 72 |Y...): l|oop over|
|00001960| 20 61 6c 6c 20 73 79 6d | 62 6f 6c 73 2e 0a 45 76 | all sym|bols..Ev|
|00001970| 61 6c 75 61 74 65 20 42 | 4f 44 59 20 77 69 74 68 |aluate B|ODY with|
|00001980| 20 56 41 52 20 62 6f 75 | 6e 64 20 74 6f 20 65 61 | VAR bou|nd to ea|
|00001990| 63 68 20 69 6e 74 65 72 | 6e 65 64 20 73 79 6d 62 |ch inter|ned symb|
|000019a0| 6f 6c 2c 20 6f 72 20 74 | 6f 20 65 61 63 68 20 73 |ol, or t|o each s|
|000019b0| 79 6d 62 6f 6c 0a 66 72 | 6f 6d 20 4f 42 41 52 52 |ymbol.fr|om OBARR|
|000019c0| 41 59 2e 1f 0a 28 61 75 | 74 6f 6c 6f 61 64 20 27 |AY...(au|toload '|
|000019d0| 64 6f 2d 73 79 6d 62 6f | 6c 73 20 22 63 6c 2d 6d |do-symbo|ls "cl-m|
|000019e0| 61 63 73 22 20 27 28 23 | 24 20 2e 20 36 34 34 31 |acs" '(#|$ . 6441|
|000019f0| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 28 62 |) nil 'm|acro).(b|
|00001a00| 79 74 65 2d 63 6f 64 65 | 20 22 c0 c1 c2 c3 89 c4 |yte-code| "......|
|00001a10| 25 87 22 20 5b 61 75 74 | 6f 6c 6f 61 64 20 64 6f |%." [aut|oload do|
|00001a20| 2d 61 6c 6c 2d 73 79 6d | 62 6f 6c 73 20 22 63 6c |-all-sym|bols "cl|
|00001a30| 2d 6d 61 63 73 22 20 6e | 69 6c 20 6d 61 63 72 6f |-macs" n|il macro|
|00001a40| 5d 20 36 29 0a 23 40 32 | 30 35 20 28 70 73 65 74 |] 6).#@2|05 (pset|
|00001a50| 71 20 53 59 4d 20 56 41 | 4c 20 53 59 4d 20 56 41 |q SYM VA|L SYM VA|
|00001a60| 4c 20 2e 2e 2e 29 3a 20 | 73 65 74 20 53 59 4d 73 |L ...): |set SYMs|
|00001a70| 20 74 6f 20 74 68 65 20 | 76 61 6c 75 65 73 20 56 | to the |values V|
|00001a80| 41 4c 73 20 69 6e 20 70 | 61 72 61 6c 6c 65 6c 2e |ALs in p|arallel.|
|00001a90| 0a 54 68 69 73 20 69 73 | 20 6c 69 6b 65 20 60 73 |.This is| like `s|
|00001aa0| 65 74 71 27 2c 20 65 78 | 63 65 70 74 20 74 68 61 |etq', ex|cept tha|
|00001ab0| 74 20 61 6c 6c 20 56 41 | 4c 20 66 6f 72 6d 73 20 |t all VA|L forms |
|00001ac0| 61 72 65 20 65 76 61 6c | 75 61 74 65 64 20 28 69 |are eval|uated (i|
|00001ad0| 6e 20 6f 72 64 65 72 29 | 0a 62 65 66 6f 72 65 20 |n order)|.before |
|00001ae0| 61 73 73 69 67 6e 69 6e | 67 20 61 6e 79 20 73 79 |assignin|g any sy|
|00001af0| 6d 62 6f 6c 73 20 53 59 | 4d 20 74 6f 20 74 68 65 |mbols SY|M to the|
|00001b00| 20 63 6f 72 72 65 73 70 | 6f 6e 64 69 6e 67 20 76 | corresp|onding v|
|00001b10| 61 6c 75 65 73 2e 1f 0a | 28 61 75 74 6f 6c 6f 61 |alues...|(autoloa|
|00001b20| 64 20 27 70 73 65 74 71 | 20 22 63 6c 2d 6d 61 63 |d 'psetq| "cl-mac|
|00001b30| 73 22 20 27 28 23 24 20 | 2e 20 36 37 33 31 29 20 |s" '(#$ |. 6731) |
|00001b40| 6e 69 6c 20 27 6d 61 63 | 72 6f 29 0a 23 40 34 34 |nil 'mac|ro).#@44|
|00001b50| 34 20 28 70 72 6f 67 76 | 20 53 59 4d 42 4f 4c 53 |4 (progv| SYMBOLS|
|00001b60| 20 56 41 4c 55 45 53 20 | 42 4f 44 59 2e 2e 2e 29 | VALUES |BODY...)|
|00001b70| 3a 20 62 69 6e 64 20 53 | 59 4d 42 4f 4c 53 20 74 |: bind S|YMBOLS t|
|00001b80| 6f 20 56 41 4c 55 45 53 | 20 64 79 6e 61 6d 69 63 |o VALUES| dynamic|
|00001b90| 61 6c 6c 79 20 69 6e 20 | 42 4f 44 59 2e 0a 54 68 |ally in |BODY..Th|
|00001ba0| 65 20 66 6f 72 6d 73 20 | 53 59 4d 42 4f 4c 53 20 |e forms |SYMBOLS |
|00001bb0| 61 6e 64 20 56 41 4c 55 | 45 53 20 61 72 65 20 65 |and VALU|ES are e|
|00001bc0| 76 61 6c 75 61 74 65 64 | 2c 20 61 6e 64 20 6d 75 |valuated|, and mu|
|00001bd0| 73 74 20 65 76 61 6c 75 | 61 74 65 20 74 6f 20 6c |st evalu|ate to l|
|00001be0| 69 73 74 73 2e 0a 45 61 | 63 68 20 53 59 4d 42 4f |ists..Ea|ch SYMBO|
|00001bf0| 4c 20 69 6e 20 74 68 65 | 20 66 69 72 73 74 20 6c |L in the| first l|
|00001c00| 69 73 74 20 69 73 20 62 | 6f 75 6e 64 20 74 6f 20 |ist is b|ound to |
|00001c10| 74 68 65 20 63 6f 72 72 | 65 73 70 6f 6e 64 69 6e |the corr|espondin|
|00001c20| 67 20 56 41 4c 55 45 20 | 69 6e 20 74 68 65 0a 73 |g VALUE |in the.s|
|00001c30| 65 63 6f 6e 64 20 6c 69 | 73 74 20 28 6f 72 20 6d |econd li|st (or m|
|00001c40| 61 64 65 20 75 6e 62 6f | 75 6e 64 20 69 66 20 56 |ade unbo|und if V|
|00001c50| 41 4c 55 45 53 20 69 73 | 20 73 68 6f 72 74 65 72 |ALUES is| shorter|
|00001c60| 20 74 68 61 6e 20 53 59 | 4d 42 4f 4c 53 29 3b 20 | than SY|MBOLS); |
|00001c70| 74 68 65 6e 20 74 68 65 | 0a 42 4f 44 59 20 66 6f |then the|.BODY fo|
|00001c80| 72 6d 73 20 61 72 65 20 | 65 78 65 63 75 74 65 64 |rms are |executed|
|00001c90| 20 61 6e 64 20 74 68 65 | 69 72 20 72 65 73 75 6c | and the|ir resul|
|00001ca0| 74 20 69 73 20 72 65 74 | 75 72 6e 65 64 2e 20 20 |t is ret|urned. |
|00001cb0| 54 68 69 73 20 69 73 20 | 6d 75 63 68 20 6c 69 6b |This is |much lik|
|00001cc0| 65 0a 61 20 60 6c 65 74 | 27 20 66 6f 72 6d 2c 20 |e.a `let|' form, |
|00001cd0| 65 78 63 65 70 74 20 74 | 68 61 74 20 74 68 65 20 |except t|hat the |
|00001ce0| 6c 69 73 74 20 6f 66 20 | 73 79 6d 62 6f 6c 73 20 |list of |symbols |
|00001cf0| 63 61 6e 20 62 65 20 63 | 6f 6d 70 75 74 65 64 20 |can be c|omputed |
|00001d00| 61 74 20 72 75 6e 2d 74 | 69 6d 65 2e 1f 0a 28 61 |at run-t|ime...(a|
|00001d10| 75 74 6f 6c 6f 61 64 20 | 27 70 72 6f 67 76 20 22 |utoload |'progv "|
|00001d20| 63 6c 2d 6d 61 63 73 22 | 20 27 28 23 24 20 2e 20 |cl-macs"| '(#$ . |
|00001d30| 36 39 39 34 29 20 6e 69 | 6c 20 27 6d 61 63 72 6f |6994) ni|l 'macro|
|00001d40| 29 0a 23 40 33 35 32 20 | 28 66 6c 65 74 20 28 28 |).#@352 |(flet ((|
|00001d50| 46 55 4e 43 20 41 52 47 | 4c 49 53 54 20 42 4f 44 |FUNC ARG|LIST BOD|
|00001d60| 59 2e 2e 2e 29 20 2e 2e | 2e 29 20 46 4f 52 4d 2e |Y...) ..|.) FORM.|
|00001d70| 2e 2e 29 3a 20 6d 61 6b | 65 20 74 65 6d 70 6f 72 |..): mak|e tempor|
|00001d80| 61 72 79 20 66 75 6e 63 | 74 69 6f 6e 20 64 65 66 |ary func|tion def|
|00001d90| 6e 73 2e 0a 54 68 69 73 | 20 69 73 20 61 6e 20 61 |ns..This| is an a|
|00001da0| 6e 61 6c 6f 67 75 65 20 | 6f 66 20 60 6c 65 74 27 |nalogue |of `let'|
|00001db0| 20 74 68 61 74 20 6f 70 | 65 72 61 74 65 73 20 6f | that op|erates o|
|00001dc0| 6e 20 74 68 65 20 66 75 | 6e 63 74 69 6f 6e 20 63 |n the fu|nction c|
|00001dd0| 65 6c 6c 20 6f 66 20 46 | 55 4e 43 0a 72 61 74 68 |ell of F|UNC.rath|
|00001de0| 65 72 20 74 68 61 6e 20 | 69 74 73 20 76 61 6c 75 |er than |its valu|
|00001df0| 65 20 63 65 6c 6c 2e 20 | 20 54 68 65 20 46 4f 52 |e cell. | The FOR|
|00001e00| 4d 73 20 61 72 65 20 65 | 76 61 6c 75 61 74 65 64 |Ms are e|valuated|
|00001e10| 20 77 69 74 68 20 74 68 | 65 20 73 70 65 63 69 66 | with th|e specif|
|00001e20| 69 65 64 0a 66 75 6e 63 | 74 69 6f 6e 20 64 65 66 |ied.func|tion def|
|00001e30| 69 6e 69 74 69 6f 6e 73 | 20 69 6e 20 70 6c 61 63 |initions| in plac|
|00001e40| 65 2c 20 74 68 65 6e 20 | 74 68 65 20 64 65 66 69 |e, then |the defi|
|00001e50| 6e 69 74 69 6f 6e 73 20 | 61 72 65 20 75 6e 64 6f |nitions |are undo|
|00001e60| 6e 65 20 28 74 68 65 20 | 46 55 4e 43 73 0a 67 6f |ne (the |FUNCs.go|
|00001e70| 20 62 61 63 6b 20 74 6f | 20 74 68 65 69 72 20 70 | back to| their p|
|00001e80| 72 65 76 69 6f 75 73 20 | 64 65 66 69 6e 69 74 69 |revious |definiti|
|00001e90| 6f 6e 73 2c 20 6f 72 20 | 6c 61 63 6b 20 74 68 65 |ons, or |lack the|
|00001ea0| 72 65 6f 66 29 2e 1f 0a | 28 61 75 74 6f 6c 6f 61 |reof)...|(autoloa|
|00001eb0| 64 20 27 66 6c 65 74 20 | 22 63 6c 2d 6d 61 63 73 |d 'flet |"cl-macs|
|00001ec0| 22 20 27 28 23 24 20 2e | 20 37 34 39 36 29 20 6e |" '(#$ .| 7496) n|
|00001ed0| 69 6c 20 27 6d 61 63 72 | 6f 29 0a 23 40 32 32 37 |il 'macr|o).#@227|
|00001ee0| 20 28 6c 61 62 65 6c 73 | 20 28 28 46 55 4e 43 20 | (labels| ((FUNC |
|00001ef0| 41 52 47 4c 49 53 54 20 | 42 4f 44 59 2e 2e 2e 29 |ARGLIST |BODY...)|
|00001f00| 20 2e 2e 2e 29 20 46 4f | 52 4d 2e 2e 2e 29 3a 20 | ...) FO|RM...): |
|00001f10| 6d 61 6b 65 20 74 65 6d | 70 6f 72 61 72 79 20 66 |make tem|porary f|
|00001f20| 75 6e 63 20 62 69 6e 64 | 69 6e 67 73 2e 0a 54 68 |unc bind|ings..Th|
|00001f30| 69 73 20 69 73 20 6c 69 | 6b 65 20 60 66 6c 65 74 |is is li|ke `flet|
|00001f40| 27 2c 20 65 78 63 65 70 | 74 20 74 68 65 20 62 69 |', excep|t the bi|
|00001f50| 6e 64 69 6e 67 73 20 61 | 72 65 20 6c 65 78 69 63 |ndings a|re lexic|
|00001f60| 61 6c 20 69 6e 73 74 65 | 61 64 20 6f 66 20 64 79 |al inste|ad of dy|
|00001f70| 6e 61 6d 69 63 2e 0a 55 | 6e 6c 69 6b 65 20 60 66 |namic..U|nlike `f|
|00001f80| 6c 65 74 27 2c 20 74 68 | 69 73 20 6d 61 63 72 6f |let', th|is macro|
|00001f90| 20 69 73 20 66 75 6c 6c | 79 20 63 6f 6d 70 6c 61 | is full|y compla|
|00001fa0| 69 6e 74 20 77 69 74 68 | 20 74 68 65 20 43 6f 6d |int with| the Com|
|00001fb0| 6d 6f 6e 20 4c 69 73 70 | 20 73 74 61 6e 64 61 72 |mon Lisp| standar|
|00001fc0| 64 2e 1f 0a 28 61 75 74 | 6f 6c 6f 61 64 20 27 6c |d...(aut|oload 'l|
|00001fd0| 61 62 65 6c 73 20 22 63 | 6c 2d 6d 61 63 73 22 20 |abels "c|l-macs" |
|00001fe0| 27 28 23 24 20 2e 20 37 | 39 30 35 29 20 6e 69 6c |'(#$ . 7|905) nil|
|00001ff0| 20 27 6d 61 63 72 6f 29 | 0a 23 40 31 33 36 20 28 | 'macro)|.#@136 (|
|00002000| 6d 61 63 72 6f 6c 65 74 | 20 28 28 4e 41 4d 45 20 |macrolet| ((NAME |
|00002010| 41 52 47 4c 49 53 54 20 | 42 4f 44 59 2e 2e 2e 29 |ARGLIST |BODY...)|
|00002020| 20 2e 2e 2e 29 20 46 4f | 52 4d 2e 2e 2e 29 3a 20 | ...) FO|RM...): |
|00002030| 6d 61 6b 65 20 74 65 6d | 70 6f 72 61 72 79 20 6d |make tem|porary m|
|00002040| 61 63 72 6f 20 64 65 66 | 6e 73 2e 0a 54 68 69 73 |acro def|ns..This|
|00002050| 20 69 73 20 6c 69 6b 65 | 20 60 66 6c 65 74 27 2c | is like| `flet',|
|00002060| 20 62 75 74 20 66 6f 72 | 20 6d 61 63 72 6f 73 20 | but for| macros |
|00002070| 69 6e 73 74 65 61 64 20 | 6f 66 20 66 75 6e 63 74 |instead |of funct|
|00002080| 69 6f 6e 73 2e 1f 0a 28 | 61 75 74 6f 6c 6f 61 64 |ions...(|autoload|
|00002090| 20 27 6d 61 63 72 6f 6c | 65 74 20 22 63 6c 2d 6d | 'macrol|et "cl-m|
|000020a0| 61 63 73 22 20 27 28 23 | 24 20 2e 20 38 31 39 31 |acs" '(#|$ . 8191|
|000020b0| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 23 40 |) nil 'm|acro).#@|
|000020c0| 32 31 38 20 28 73 79 6d | 62 6f 6c 2d 6d 61 63 72 |218 (sym|bol-macr|
|000020d0| 6f 6c 65 74 20 28 28 4e | 41 4d 45 20 45 58 50 41 |olet ((N|AME EXPA|
|000020e0| 4e 53 49 4f 4e 29 20 2e | 2e 2e 29 20 46 4f 52 4d |NSION) .|..) FORM|
|000020f0| 2e 2e 2e 29 3a 20 6d 61 | 6b 65 20 73 79 6d 62 6f |...): ma|ke symbo|
|00002100| 6c 20 6d 61 63 72 6f 20 | 64 65 66 6e 73 2e 0a 57 |l macro |defns..W|
|00002110| 69 74 68 69 6e 20 74 68 | 65 20 62 6f 64 79 20 46 |ithin th|e body F|
|00002120| 4f 52 4d 73 2c 20 72 65 | 66 65 72 65 6e 63 65 73 |ORMs, re|ferences|
|00002130| 20 74 6f 20 74 68 65 20 | 76 61 72 69 61 62 6c 65 | to the |variable|
|00002140| 20 4e 41 4d 45 20 77 69 | 6c 6c 20 62 65 20 72 65 | NAME wi|ll be re|
|00002150| 70 6c 61 63 65 64 0a 62 | 79 20 45 58 50 41 4e 53 |placed.b|y EXPANS|
|00002160| 49 4f 4e 2c 20 61 6e 64 | 20 28 73 65 74 71 20 4e |ION, and| (setq N|
|00002170| 41 4d 45 20 2e 2e 2e 29 | 20 77 69 6c 6c 20 61 63 |AME ...)| will ac|
|00002180| 74 20 6c 69 6b 65 20 28 | 73 65 74 66 20 45 58 50 |t like (|setf EXP|
|00002190| 41 4e 53 49 4f 4e 20 2e | 2e 2e 29 2e 1f 0a 28 61 |ANSION .|..)...(a|
|000021a0| 75 74 6f 6c 6f 61 64 20 | 27 73 79 6d 62 6f 6c 2d |utoload |'symbol-|
|000021b0| 6d 61 63 72 6f 6c 65 74 | 20 22 63 6c 2d 6d 61 63 |macrolet| "cl-mac|
|000021c0| 73 22 20 27 28 23 24 20 | 2e 20 38 33 38 38 29 20 |s" '(#$ |. 8388) |
|000021d0| 6e 69 6c 20 27 6d 61 63 | 72 6f 29 0a 23 40 31 37 |nil 'mac|ro).#@17|
|000021e0| 31 20 28 6c 65 78 69 63 | 61 6c 2d 6c 65 74 20 42 |1 (lexic|al-let B|
|000021f0| 49 4e 44 49 4e 47 53 20 | 42 4f 44 59 2e 2e 2e 29 |INDINGS |BODY...)|
|00002200| 3a 20 6c 69 6b 65 20 60 | 6c 65 74 27 2c 20 62 75 |: like `|let', bu|
|00002210| 74 20 6c 65 78 69 63 61 | 6c 6c 79 20 73 63 6f 70 |t lexica|lly scop|
|00002220| 65 64 2e 0a 54 68 65 20 | 6d 61 69 6e 20 76 69 73 |ed..The |main vis|
|00002230| 69 62 6c 65 20 64 69 66 | 66 65 72 65 6e 63 65 20 |ible dif|ference |
|00002240| 69 73 20 74 68 61 74 20 | 6c 61 6d 62 64 61 73 20 |is that |lambdas |
|00002250| 69 6e 73 69 64 65 20 42 | 4f 44 59 20 77 69 6c 6c |inside B|ODY will|
|00002260| 20 63 72 65 61 74 65 0a | 6c 65 78 69 63 61 6c 20 | create.|lexical |
|00002270| 63 6c 6f 73 75 72 65 73 | 20 61 73 20 69 6e 20 43 |closures| as in C|
|00002280| 6f 6d 6d 6f 6e 20 4c 69 | 73 70 2e 1f 0a 28 61 75 |ommon Li|sp...(au|
|00002290| 74 6f 6c 6f 61 64 20 27 | 6c 65 78 69 63 61 6c 2d |toload '|lexical-|
|000022a0| 6c 65 74 20 22 63 6c 2d | 6d 61 63 73 22 20 27 28 |let "cl-|macs" '(|
|000022b0| 23 24 20 2e 20 38 36 37 | 34 29 20 6e 69 6c 20 27 |#$ . 867|4) nil '|
|000022c0| 6d 61 63 72 6f 29 0a 23 | 40 31 37 33 20 28 6c 65 |macro).#|@173 (le|
|000022d0| 78 69 63 61 6c 2d 6c 65 | 74 2a 20 42 49 4e 44 49 |xical-le|t* BINDI|
|000022e0| 4e 47 53 20 42 4f 44 59 | 2e 2e 2e 29 3a 20 6c 69 |NGS BODY|...): li|
|000022f0| 6b 65 20 60 6c 65 74 2a | 27 2c 20 62 75 74 20 6c |ke `let*|', but l|
|00002300| 65 78 69 63 61 6c 6c 79 | 20 73 63 6f 70 65 64 2e |exically| scoped.|
|00002310| 0a 54 68 65 20 6d 61 69 | 6e 20 76 69 73 69 62 6c |.The mai|n visibl|
|00002320| 65 20 64 69 66 66 65 72 | 65 6e 63 65 20 69 73 20 |e differ|ence is |
|00002330| 74 68 61 74 20 6c 61 6d | 62 64 61 73 20 69 6e 73 |that lam|bdas ins|
|00002340| 69 64 65 20 42 4f 44 59 | 20 77 69 6c 6c 20 63 72 |ide BODY| will cr|
|00002350| 65 61 74 65 0a 6c 65 78 | 69 63 61 6c 20 63 6c 6f |eate.lex|ical clo|
|00002360| 73 75 72 65 73 20 61 73 | 20 69 6e 20 43 6f 6d 6d |sures as| in Comm|
|00002370| 6f 6e 20 4c 69 73 70 2e | 1f 0a 28 61 75 74 6f 6c |on Lisp.|..(autol|
|00002380| 6f 61 64 20 27 6c 65 78 | 69 63 61 6c 2d 6c 65 74 |oad 'lex|ical-let|
|00002390| 2a 20 22 63 6c 2d 6d 61 | 63 73 22 20 27 28 23 24 |* "cl-ma|cs" '(#$|
|000023a0| 20 2e 20 38 39 30 39 29 | 20 6e 69 6c 20 27 6d 61 | . 8909)| nil 'ma|
|000023b0| 63 72 6f 29 0a 23 40 34 | 31 31 20 28 6d 75 6c 74 |cro).#@4|11 (mult|
|000023c0| 69 70 6c 65 2d 76 61 6c | 75 65 2d 62 69 6e 64 20 |iple-val|ue-bind |
|000023d0| 28 53 59 4d 20 53 59 4d | 2e 2e 2e 29 20 46 4f 52 |(SYM SYM|...) FOR|
|000023e0| 4d 20 42 4f 44 59 29 3a | 20 63 6f 6c 6c 65 63 74 |M BODY):| collect|
|000023f0| 20 6d 75 6c 74 69 70 6c | 65 20 72 65 74 75 72 6e | multipl|e return|
|00002400| 20 76 61 6c 75 65 73 2e | 0a 46 4f 52 4d 20 6d 75 | values.|.FORM mu|
|00002410| 73 74 20 72 65 74 75 72 | 6e 20 61 20 6c 69 73 74 |st retur|n a list|
|00002420| 3b 20 74 68 65 20 42 4f | 44 59 20 69 73 20 74 68 |; the BO|DY is th|
|00002430| 65 6e 20 65 78 65 63 75 | 74 65 64 20 77 69 74 68 |en execu|ted with|
|00002440| 20 74 68 65 20 66 69 72 | 73 74 20 4e 20 65 6c 65 | the fir|st N ele|
|00002450| 6d 65 6e 74 73 0a 6f 66 | 20 74 68 69 73 20 6c 69 |ments.of| this li|
|00002460| 73 74 20 62 6f 75 6e 64 | 20 28 60 6c 65 74 27 2d |st bound| (`let'-|
|00002470| 73 74 79 6c 65 29 20 74 | 6f 20 65 61 63 68 20 6f |style) t|o each o|
|00002480| 66 20 74 68 65 20 73 79 | 6d 62 6f 6c 73 20 53 59 |f the sy|mbols SY|
|00002490| 4d 20 69 6e 20 74 75 72 | 6e 2e 20 20 54 68 69 73 |M in tur|n. This|
|000024a0| 0a 69 73 20 61 6e 61 6c | 6f 67 6f 75 73 20 74 6f |.is anal|ogous to|
|000024b0| 20 74 68 65 20 43 6f 6d | 6d 6f 6e 20 4c 69 73 70 | the Com|mon Lisp|
|000024c0| 20 60 6d 75 6c 74 69 70 | 6c 65 2d 76 61 6c 75 65 | `multip|le-value|
|000024d0| 2d 62 69 6e 64 27 20 6d | 61 63 72 6f 2c 20 75 73 |-bind' m|acro, us|
|000024e0| 69 6e 67 20 6c 69 73 74 | 73 20 74 6f 0a 73 69 6d |ing list|s to.sim|
|000024f0| 75 6c 61 74 65 20 74 72 | 75 65 20 6d 75 6c 74 69 |ulate tr|ue multi|
|00002500| 70 6c 65 20 72 65 74 75 | 72 6e 20 76 61 6c 75 65 |ple retu|rn value|
|00002510| 73 2e 20 20 46 6f 72 20 | 63 6f 6d 70 61 74 69 62 |s. For |compatib|
|00002520| 69 6c 69 74 79 2c 20 28 | 76 61 6c 75 65 73 20 41 |ility, (|values A|
|00002530| 20 42 20 43 29 20 69 73 | 0a 61 20 73 79 6e 6f 6e | B C) is|.a synon|
|00002540| 79 6d 20 66 6f 72 20 28 | 6c 69 73 74 20 41 20 42 |ym for (|list A B|
|00002550| 20 43 29 2e 1f 0a 28 61 | 75 74 6f 6c 6f 61 64 20 | C)...(a|utoload |
|00002560| 27 6d 75 6c 74 69 70 6c | 65 2d 76 61 6c 75 65 2d |'multipl|e-value-|
|00002570| 62 69 6e 64 20 22 63 6c | 2d 6d 61 63 73 22 20 27 |bind "cl|-macs" '|
|00002580| 28 23 24 20 2e 20 39 31 | 34 37 29 20 6e 69 6c 20 |(#$ . 91|47) nil |
|00002590| 27 6d 61 63 72 6f 29 0a | 23 40 33 36 36 20 28 6d |'macro).|#@366 (m|
|000025a0| 75 6c 74 69 70 6c 65 2d | 76 61 6c 75 65 2d 73 65 |ultiple-|value-se|
|000025b0| 74 71 20 28 53 59 4d 20 | 53 59 4d 2e 2e 2e 29 20 |tq (SYM |SYM...) |
|000025c0| 46 4f 52 4d 29 3a 20 63 | 6f 6c 6c 65 63 74 20 6d |FORM): c|ollect m|
|000025d0| 75 6c 74 69 70 6c 65 20 | 72 65 74 75 72 6e 20 76 |ultiple |return v|
|000025e0| 61 6c 75 65 73 2e 0a 46 | 4f 52 4d 20 6d 75 73 74 |alues..F|ORM must|
|000025f0| 20 72 65 74 75 72 6e 20 | 61 20 6c 69 73 74 3b 20 | return |a list; |
|00002600| 74 68 65 20 66 69 72 73 | 74 20 4e 20 65 6c 65 6d |the firs|t N elem|
|00002610| 65 6e 74 73 20 6f 66 20 | 74 68 69 73 20 6c 69 73 |ents of |this lis|
|00002620| 74 20 61 72 65 20 73 74 | 6f 72 65 64 20 69 6e 0a |t are st|ored in.|
|00002630| 65 61 63 68 20 6f 66 20 | 74 68 65 20 73 79 6d 62 |each of |the symb|
|00002640| 6f 6c 73 20 53 59 4d 20 | 69 6e 20 74 75 72 6e 2e |ols SYM |in turn.|
|00002650| 20 20 54 68 69 73 20 69 | 73 20 61 6e 61 6c 6f 67 | This i|s analog|
|00002660| 6f 75 73 20 74 6f 20 74 | 68 65 20 43 6f 6d 6d 6f |ous to t|he Commo|
|00002670| 6e 20 4c 69 73 70 0a 60 | 6d 75 6c 74 69 70 6c 65 |n Lisp.`|multiple|
|00002680| 2d 76 61 6c 75 65 2d 73 | 65 74 71 27 20 6d 61 63 |-value-s|etq' mac|
|00002690| 72 6f 2c 20 75 73 69 6e | 67 20 6c 69 73 74 73 20 |ro, usin|g lists |
|000026a0| 74 6f 20 73 69 6d 75 6c | 61 74 65 20 74 72 75 65 |to simul|ate true|
|000026b0| 20 6d 75 6c 74 69 70 6c | 65 20 72 65 74 75 72 6e | multipl|e return|
|000026c0| 0a 76 61 6c 75 65 73 2e | 20 20 46 6f 72 20 63 6f |.values.| For co|
|000026d0| 6d 70 61 74 69 62 69 6c | 69 74 79 2c 20 28 76 61 |mpatibil|ity, (va|
|000026e0| 6c 75 65 73 20 41 20 42 | 20 43 29 20 69 73 20 61 |lues A B| C) is a|
|000026f0| 20 73 79 6e 6f 6e 79 6d | 20 66 6f 72 20 28 6c 69 | synonym| for (li|
|00002700| 73 74 20 41 20 42 20 43 | 29 2e 1f 0a 28 61 75 74 |st A B C|)...(aut|
|00002710| 6f 6c 6f 61 64 20 27 6d | 75 6c 74 69 70 6c 65 2d |oload 'm|ultiple-|
|00002720| 76 61 6c 75 65 2d 73 65 | 74 71 20 22 63 6c 2d 6d |value-se|tq "cl-m|
|00002730| 61 63 73 22 20 27 28 23 | 24 20 2e 20 39 36 33 30 |acs" '(#|$ . 9630|
|00002740| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 28 62 |) nil 'm|acro).(b|
|00002750| 79 74 65 2d 63 6f 64 65 | 20 22 c0 c1 c2 c3 89 c4 |yte-code| "......|
|00002760| 25 88 c0 c5 c2 c3 89 c4 | 25 88 c0 c6 c2 c3 89 c4 |%.......|%.......|
|00002770| 25 87 22 20 5b 61 75 74 | 6f 6c 6f 61 64 20 6c 6f |%." [aut|oload lo|
|00002780| 63 61 6c 6c 79 20 22 63 | 6c 2d 6d 61 63 73 22 20 |cally "c|l-macs" |
|00002790| 6e 69 6c 20 6d 61 63 72 | 6f 20 74 68 65 20 64 65 |nil macr|o the de|
|000027a0| 63 6c 61 72 65 5d 20 36 | 29 0a 23 40 35 31 30 20 |clare] 6|).#@510 |
|000027b0| 28 64 65 66 69 6e 65 2d | 73 65 74 66 2d 6d 65 74 |(define-|setf-met|
|000027c0| 68 6f 64 20 4e 41 4d 45 | 20 41 52 47 4c 49 53 54 |hod NAME| ARGLIST|
|000027d0| 20 42 4f 44 59 2e 2e 2e | 29 3a 20 64 65 66 69 6e | BODY...|): defin|
|000027e0| 65 20 61 20 60 73 65 74 | 66 27 20 6d 65 74 68 6f |e a `set|f' metho|
|000027f0| 64 2e 0a 54 68 69 73 20 | 6d 65 74 68 6f 64 20 73 |d..This |method s|
|00002800| 68 6f 77 73 20 68 6f 77 | 20 74 6f 20 68 61 6e 64 |hows how| to hand|
|00002810| 6c 65 20 60 73 65 74 66 | 27 73 20 74 6f 20 70 6c |le `setf|'s to pl|
|00002820| 61 63 65 73 20 6f 66 20 | 74 68 65 20 66 6f 72 6d |aces of |the form|
|00002830| 20 28 4e 41 4d 45 20 41 | 52 47 53 2e 2e 2e 29 2e | (NAME A|RGS...).|
|00002840| 0a 54 68 65 20 61 72 67 | 75 6d 65 6e 74 20 66 6f |.The arg|ument fo|
|00002850| 72 6d 73 20 41 52 47 53 | 20 61 72 65 20 62 6f 75 |rms ARGS| are bou|
|00002860| 6e 64 20 61 63 63 6f 72 | 64 69 6e 67 20 74 6f 20 |nd accor|ding to |
|00002870| 41 52 47 4c 49 53 54 2c | 20 61 73 20 69 66 20 4e |ARGLIST,| as if N|
|00002880| 41 4d 45 20 77 65 72 65 | 0a 67 6f 69 6e 67 20 74 |AME were|.going t|
|00002890| 6f 20 62 65 20 65 78 70 | 61 6e 64 65 64 20 61 73 |o be exp|anded as|
|000028a0| 20 61 20 6d 61 63 72 6f | 2c 20 74 68 65 6e 20 74 | a macro|, then t|
|000028b0| 68 65 20 42 4f 44 59 20 | 66 6f 72 6d 73 20 61 72 |he BODY |forms ar|
|000028c0| 65 20 65 78 65 63 75 74 | 65 64 20 61 6e 64 20 6d |e execut|ed and m|
|000028d0| 75 73 74 0a 72 65 74 75 | 72 6e 20 61 20 6c 69 73 |ust.retu|rn a lis|
|000028e0| 74 20 6f 66 20 66 69 76 | 65 20 65 6c 65 6d 65 6e |t of fiv|e elemen|
|000028f0| 74 73 3a 20 61 20 74 65 | 6d 70 6f 72 61 72 79 2d |ts: a te|mporary-|
|00002900| 76 61 72 69 61 62 6c 65 | 73 20 6c 69 73 74 2c 20 |variable|s list, |
|00002910| 61 20 76 61 6c 75 65 2d | 66 6f 72 6d 73 0a 6c 69 |a value-|forms.li|
|00002920| 73 74 2c 20 61 20 73 74 | 6f 72 65 2d 76 61 72 69 |st, a st|ore-vari|
|00002930| 61 62 6c 65 73 20 6c 69 | 73 74 20 28 6f 66 20 6c |ables li|st (of l|
|00002940| 65 6e 67 74 68 20 6f 6e | 65 29 2c 20 61 20 73 74 |ength on|e), a st|
|00002950| 6f 72 65 2d 66 6f 72 6d | 2c 20 61 6e 64 20 61 6e |ore-form|, and an|
|00002960| 20 61 63 63 65 73 73 2d | 0a 66 6f 72 6d 2e 20 20 | access-|.form. |
|00002970| 53 65 65 20 60 64 65 66 | 73 65 74 66 27 20 66 6f |See `def|setf' fo|
|00002980| 72 20 61 20 73 69 6d 70 | 6c 65 72 20 77 61 79 20 |r a simp|ler way |
|00002990| 74 6f 20 64 65 66 69 6e | 65 20 6d 6f 73 74 20 73 |to defin|e most s|
|000029a0| 65 74 66 2d 6d 65 74 68 | 6f 64 73 2e 1f 0a 28 61 |etf-meth|ods...(a|
|000029b0| 75 74 6f 6c 6f 61 64 20 | 27 64 65 66 69 6e 65 2d |utoload |'define-|
|000029c0| 73 65 74 66 2d 6d 65 74 | 68 6f 64 20 22 63 6c 2d |setf-met|hod "cl-|
|000029d0| 6d 61 63 73 22 20 27 28 | 23 24 20 2e 20 31 30 31 |macs" '(|#$ . 101|
|000029e0| 36 30 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |60) nil |'macro).|
|000029f0| 23 40 38 33 39 20 28 64 | 65 66 73 65 74 66 20 4e |#@839 (d|efsetf N|
|00002a00| 41 4d 45 20 46 55 4e 43 | 29 3a 20 64 65 66 69 6e |AME FUNC|): defin|
|00002a10| 65 20 61 20 60 73 65 74 | 66 27 20 6d 65 74 68 6f |e a `set|f' metho|
|00002a20| 64 2e 0a 54 68 69 73 20 | 6d 61 63 72 6f 20 69 73 |d..This |macro is|
|00002a30| 20 61 6e 20 65 61 73 79 | 2d 74 6f 2d 75 73 65 20 | an easy|-to-use |
|00002a40| 73 75 62 73 74 69 74 75 | 74 65 20 66 6f 72 20 60 |substitu|te for `|
|00002a50| 64 65 66 69 6e 65 2d 73 | 65 74 66 2d 6d 65 74 68 |define-s|etf-meth|
|00002a60| 6f 64 27 20 74 68 61 74 | 20 77 6f 72 6b 73 0a 77 |od' that| works.w|
|00002a70| 65 6c 6c 20 66 6f 72 20 | 73 69 6d 70 6c 65 20 70 |ell for |simple p|
|00002a80| 6c 61 63 65 20 66 6f 72 | 6d 73 2e 20 20 49 6e 20 |lace for|ms. In |
|00002a90| 74 68 65 20 73 69 6d 70 | 6c 65 20 60 64 65 66 73 |the simp|le `defs|
|00002aa0| 65 74 66 27 20 66 6f 72 | 6d 2c 20 60 73 65 74 66 |etf' for|m, `setf|
|00002ab0| 27 73 20 6f 66 0a 74 68 | 65 20 66 6f 72 6d 20 28 |'s of.th|e form (|
|00002ac0| 73 65 74 66 20 28 4e 41 | 4d 45 20 41 52 47 53 2e |setf (NA|ME ARGS.|
|00002ad0| 2e 2e 29 20 56 41 4c 29 | 20 61 72 65 20 74 72 61 |..) VAL)| are tra|
|00002ae0| 6e 73 66 6f 72 6d 65 64 | 20 74 6f 20 66 75 6e 63 |nsformed| to func|
|00002af0| 74 69 6f 6e 20 6f 72 20 | 6d 61 63 72 6f 0a 63 61 |tion or |macro.ca|
|00002b00| 6c 6c 73 20 6f 66 20 74 | 68 65 20 66 6f 72 6d 20 |lls of t|he form |
|00002b10| 28 46 55 4e 43 20 41 52 | 47 53 2e 2e 2e 20 56 41 |(FUNC AR|GS... VA|
|00002b20| 4c 29 2e 20 20 45 78 61 | 6d 70 6c 65 3a 20 28 64 |L). Exa|mple: (d|
|00002b30| 65 66 73 65 74 66 20 61 | 72 65 66 20 61 73 65 74 |efsetf a|ref aset|
|00002b40| 29 2e 0a 41 6c 74 65 72 | 6e 61 74 65 20 66 6f 72 |)..Alter|nate for|
|00002b50| 6d 3a 20 28 64 65 66 73 | 65 74 66 20 4e 41 4d 45 |m: (defs|etf NAME|
|00002b60| 20 41 52 47 4c 49 53 54 | 20 28 53 54 4f 52 45 29 | ARGLIST| (STORE)|
|00002b70| 20 42 4f 44 59 2e 2e 2e | 29 2e 0a 48 65 72 65 2c | BODY...|)..Here,|
|00002b80| 20 74 68 65 20 61 62 6f | 76 65 20 60 73 65 74 66 | the abo|ve `setf|
|00002b90| 27 20 63 61 6c 6c 20 69 | 73 20 65 78 70 61 6e 64 |' call i|s expand|
|00002ba0| 65 64 20 62 79 20 62 69 | 6e 64 69 6e 67 20 74 68 |ed by bi|nding th|
|00002bb0| 65 20 61 72 67 75 6d 65 | 6e 74 20 66 6f 72 6d 73 |e argume|nt forms|
|00002bc0| 20 41 52 47 53 0a 61 63 | 63 6f 72 64 69 6e 67 20 | ARGS.ac|cording |
|00002bd0| 74 6f 20 41 52 47 4c 49 | 53 54 2c 20 62 69 6e 64 |to ARGLI|ST, bind|
|00002be0| 69 6e 67 20 74 68 65 20 | 76 61 6c 75 65 20 66 6f |ing the |value fo|
|00002bf0| 72 6d 20 56 41 4c 20 74 | 6f 20 53 54 4f 52 45 2c |rm VAL t|o STORE,|
|00002c00| 20 74 68 65 6e 20 65 78 | 65 63 75 74 69 6e 67 0a | then ex|ecuting.|
|00002c10| 42 4f 44 59 2c 20 77 68 | 69 63 68 20 6d 75 73 74 |BODY, wh|ich must|
|00002c20| 20 72 65 74 75 72 6e 20 | 61 20 4c 69 73 70 20 66 | return |a Lisp f|
|00002c30| 6f 72 6d 20 74 68 61 74 | 20 64 6f 65 73 20 74 68 |orm that| does th|
|00002c40| 65 20 6e 65 63 65 73 73 | 61 72 79 20 60 73 65 74 |e necess|ary `set|
|00002c50| 66 27 20 6f 70 65 72 61 | 74 69 6f 6e 2e 0a 41 63 |f' opera|tion..Ac|
|00002c60| 74 75 61 6c 6c 79 2c 20 | 41 52 47 4c 49 53 54 20 |tually, |ARGLIST |
|00002c70| 61 6e 64 20 53 54 4f 52 | 45 20 6d 61 79 20 62 65 |and STOR|E may be|
|00002c80| 20 62 6f 75 6e 64 20 74 | 6f 20 74 65 6d 70 6f 72 | bound t|o tempor|
|00002c90| 61 72 79 20 76 61 72 69 | 61 62 6c 65 73 20 77 68 |ary vari|ables wh|
|00002ca0| 69 63 68 20 61 72 65 0a | 69 6e 74 72 6f 64 75 63 |ich are.|introduc|
|00002cb0| 65 64 20 61 75 74 6f 6d | 61 74 69 63 61 6c 6c 79 |ed autom|atically|
|00002cc0| 20 74 6f 20 70 72 65 73 | 65 72 76 65 20 70 72 6f | to pres|erve pro|
|00002cd0| 70 65 72 20 65 78 65 63 | 75 74 69 6f 6e 20 6f 72 |per exec|ution or|
|00002ce0| 64 65 72 20 6f 66 20 74 | 68 65 20 61 72 67 75 6d |der of t|he argum|
|00002cf0| 65 6e 74 73 2e 0a 45 78 | 61 6d 70 6c 65 3a 20 28 |ents..Ex|ample: (|
|00002d00| 64 65 66 73 65 74 66 20 | 6e 74 68 20 28 6e 20 78 |defsetf |nth (n x|
|00002d10| 29 20 28 76 29 20 28 6c | 69 73 74 20 27 73 65 74 |) (v) (l|ist 'set|
|00002d20| 63 61 72 20 28 6c 69 73 | 74 20 27 6e 74 68 63 64 |car (lis|t 'nthcd|
|00002d30| 72 20 6e 20 78 29 20 76 | 29 29 2e 1f 0a 28 61 75 |r n x) v|))...(au|
|00002d40| 74 6f 6c 6f 61 64 20 27 | 64 65 66 73 65 74 66 20 |toload '|defsetf |
|00002d50| 22 63 6c 2d 6d 61 63 73 | 22 20 27 28 23 24 20 2e |"cl-macs|" '(#$ .|
|00002d60| 20 31 30 37 34 32 29 20 | 6e 69 6c 20 27 6d 61 63 | 10742) |nil 'mac|
|00002d70| 72 6f 29 0a 23 40 31 36 | 38 20 52 65 74 75 72 6e |ro).#@16|8 Return|
|00002d80| 20 61 20 6c 69 73 74 20 | 6f 66 20 66 69 76 65 20 | a list |of five |
|00002d90| 76 61 6c 75 65 73 20 64 | 65 73 63 72 69 62 69 6e |values d|escribin|
|00002da0| 67 20 74 68 65 20 73 65 | 74 66 2d 6d 65 74 68 6f |g the se|tf-metho|
|00002db0| 64 20 66 6f 72 20 50 4c | 41 43 45 2e 0a 50 4c 41 |d for PL|ACE..PLA|
|00002dc0| 43 45 20 6d 61 79 20 62 | 65 20 61 6e 79 20 4c 69 |CE may b|e any Li|
|00002dd0| 73 70 20 66 6f 72 6d 20 | 77 68 69 63 68 20 63 61 |sp form |which ca|
|00002de0| 6e 20 61 70 70 65 61 72 | 20 61 73 20 74 68 65 20 |n appear| as the |
|00002df0| 50 4c 41 43 45 20 61 72 | 67 75 6d 65 6e 74 20 74 |PLACE ar|gument t|
|00002e00| 6f 0a 61 20 6d 61 63 72 | 6f 20 6c 69 6b 65 20 60 |o.a macr|o like `|
|00002e10| 73 65 74 66 27 20 6f 72 | 20 60 69 6e 63 66 27 2e |setf' or| `incf'.|
|00002e20| 1f 0a 28 61 75 74 6f 6c | 6f 61 64 20 27 67 65 74 |..(autol|oad 'get|
|00002e30| 2d 73 65 74 66 2d 6d 65 | 74 68 6f 64 20 22 63 6c |-setf-me|thod "cl|
|00002e40| 2d 6d 61 63 73 22 20 27 | 28 23 24 20 2e 20 31 31 |-macs" '|(#$ . 11|
|00002e50| 36 34 32 29 20 6e 69 6c | 20 6e 69 6c 29 0a 23 40 |642) nil| nil).#@|
|00002e60| 33 32 35 20 28 73 65 74 | 66 20 50 4c 41 43 45 20 |325 (set|f PLACE |
|00002e70| 56 41 4c 20 50 4c 41 43 | 45 20 56 41 4c 20 2e 2e |VAL PLAC|E VAL ..|
|00002e80| 2e 29 3a 20 73 65 74 20 | 65 61 63 68 20 50 4c 41 |.): set |each PLA|
|00002e90| 43 45 20 74 6f 20 74 68 | 65 20 76 61 6c 75 65 20 |CE to th|e value |
|00002ea0| 6f 66 20 69 74 73 20 56 | 41 4c 2e 0a 54 68 69 73 |of its V|AL..This|
|00002eb0| 20 69 73 20 61 20 67 65 | 6e 65 72 61 6c 69 7a 65 | is a ge|neralize|
|00002ec0| 64 20 76 65 72 73 69 6f | 6e 20 6f 66 20 60 73 65 |d versio|n of `se|
|00002ed0| 74 71 27 3b 20 74 68 65 | 20 50 4c 41 43 45 73 20 |tq'; the| PLACEs |
|00002ee0| 6d 61 79 20 62 65 20 73 | 79 6d 62 6f 6c 69 63 0a |may be s|ymbolic.|
|00002ef0| 72 65 66 65 72 65 6e 63 | 65 73 20 73 75 63 68 20 |referenc|es such |
|00002f00| 61 73 20 28 63 61 72 20 | 78 29 20 6f 72 20 28 61 |as (car |x) or (a|
|00002f10| 72 65 66 20 78 20 69 29 | 2c 20 61 73 20 77 65 6c |ref x i)|, as wel|
|00002f20| 6c 20 61 73 20 70 6c 61 | 69 6e 20 73 79 6d 62 6f |l as pla|in symbo|
|00002f30| 6c 73 2e 0a 46 6f 72 20 | 65 78 61 6d 70 6c 65 2c |ls..For |example,|
|00002f40| 20 28 73 65 74 66 20 28 | 63 61 64 61 72 20 78 29 | (setf (|cadar x)|
|00002f50| 20 79 29 20 69 73 20 65 | 71 75 69 76 61 6c 65 6e | y) is e|quivalen|
|00002f60| 74 20 74 6f 20 28 73 65 | 74 63 61 72 20 28 63 64 |t to (se|tcar (cd|
|00002f70| 61 72 20 78 29 20 79 29 | 2e 0a 54 68 65 20 72 65 |ar x) y)|..The re|
|00002f80| 74 75 72 6e 20 76 61 6c | 75 65 20 69 73 20 74 68 |turn val|ue is th|
|00002f90| 65 20 6c 61 73 74 20 56 | 41 4c 20 69 6e 20 74 68 |e last V|AL in th|
|00002fa0| 65 20 6c 69 73 74 2e 1f | 0a 28 61 75 74 6f 6c 6f |e list..|.(autolo|
|00002fb0| 61 64 20 27 73 65 74 66 | 20 22 63 6c 2d 6d 61 63 |ad 'setf| "cl-mac|
|00002fc0| 73 22 20 27 28 23 24 20 | 2e 20 31 31 38 37 36 29 |s" '(#$ |. 11876)|
|00002fd0| 20 6e 69 6c 20 27 6d 61 | 63 72 6f 29 0a 23 40 32 | nil 'ma|cro).#@2|
|00002fe0| 30 36 20 28 70 73 65 74 | 66 20 50 4c 41 43 45 20 |06 (pset|f PLACE |
|00002ff0| 56 41 4c 20 50 4c 41 43 | 45 20 56 41 4c 20 2e 2e |VAL PLAC|E VAL ..|
|00003000| 2e 29 3a 20 73 65 74 20 | 50 4c 41 43 45 73 20 74 |.): set |PLACEs t|
|00003010| 6f 20 74 68 65 20 76 61 | 6c 75 65 73 20 56 41 4c |o the va|lues VAL|
|00003020| 73 20 69 6e 20 70 61 72 | 61 6c 6c 65 6c 2e 0a 54 |s in par|allel..T|
|00003030| 68 69 73 20 69 73 20 6c | 69 6b 65 20 60 73 65 74 |his is l|ike `set|
|00003040| 66 27 2c 20 65 78 63 65 | 70 74 20 74 68 61 74 20 |f', exce|pt that |
|00003050| 61 6c 6c 20 56 41 4c 20 | 66 6f 72 6d 73 20 61 72 |all VAL |forms ar|
|00003060| 65 20 65 76 61 6c 75 61 | 74 65 64 20 28 69 6e 20 |e evalua|ted (in |
|00003070| 6f 72 64 65 72 29 0a 62 | 65 66 6f 72 65 20 61 73 |order).b|efore as|
|00003080| 73 69 67 6e 69 6e 67 20 | 61 6e 79 20 50 4c 41 43 |signing |any PLAC|
|00003090| 45 73 20 74 6f 20 74 68 | 65 20 63 6f 72 72 65 73 |Es to th|e corres|
|000030a0| 70 6f 6e 64 69 6e 67 20 | 76 61 6c 75 65 73 2e 1f |ponding |values..|
|000030b0| 0a 28 61 75 74 6f 6c 6f | 61 64 20 27 70 73 65 74 |.(autolo|ad 'pset|
|000030c0| 66 20 22 63 6c 2d 6d 61 | 63 73 22 20 27 28 23 24 |f "cl-ma|cs" '(#$|
|000030d0| 20 2e 20 31 32 32 35 39 | 29 20 6e 69 6c 20 27 6d | . 12259|) nil 'm|
|000030e0| 61 63 72 6f 29 0a 28 62 | 79 74 65 2d 63 6f 64 65 |acro).(b|yte-code|
|000030f0| 20 22 c0 c1 c2 c3 89 89 | 25 87 22 20 5b 61 75 74 | "......|%." [aut|
|00003100| 6f 6c 6f 61 64 20 63 6c | 2d 64 6f 2d 70 6f 70 20 |oload cl|-do-pop |
|00003110| 22 63 6c 2d 6d 61 63 73 | 22 20 6e 69 6c 5d 20 36 |"cl-macs|" nil] 6|
|00003120| 29 0a 23 40 31 39 33 20 | 28 72 65 6d 66 20 50 4c |).#@193 |(remf PL|
|00003130| 41 43 45 20 54 41 47 29 | 3a 20 72 65 6d 6f 76 65 |ACE TAG)|: remove|
|00003140| 20 54 41 47 20 66 72 6f | 6d 20 70 72 6f 70 65 72 | TAG fro|m proper|
|00003150| 74 79 20 6c 69 73 74 20 | 50 4c 41 43 45 2e 0a 50 |ty list |PLACE..P|
|00003160| 4c 41 43 45 20 6d 61 79 | 20 62 65 20 61 20 73 79 |LACE may| be a sy|
|00003170| 6d 62 6f 6c 2c 20 6f 72 | 20 61 6e 79 20 67 65 6e |mbol, or| any gen|
|00003180| 65 72 61 6c 69 7a 65 64 | 20 76 61 72 69 61 62 6c |eralized| variabl|
|00003190| 65 20 61 6c 6c 6f 77 65 | 64 20 62 79 20 60 73 65 |e allowe|d by `se|
|000031a0| 74 66 27 2e 0a 54 68 65 | 20 66 6f 72 6d 20 72 65 |tf'..The| form re|
|000031b0| 74 75 72 6e 73 20 74 72 | 75 65 20 69 66 20 54 41 |turns tr|ue if TA|
|000031c0| 47 20 77 61 73 20 66 6f | 75 6e 64 20 61 6e 64 20 |G was fo|und and |
|000031d0| 72 65 6d 6f 76 65 64 2c | 20 6e 69 6c 20 6f 74 68 |removed,| nil oth|
|000031e0| 65 72 77 69 73 65 2e 1f | 0a 28 61 75 74 6f 6c 6f |erwise..|.(autolo|
|000031f0| 61 64 20 27 72 65 6d 66 | 20 22 63 6c 2d 6d 61 63 |ad 'remf| "cl-mac|
|00003200| 73 22 20 27 28 23 24 20 | 2e 20 31 32 35 38 34 29 |s" '(#$ |. 12584)|
|00003210| 20 6e 69 6c 20 27 6d 61 | 63 72 6f 29 0a 23 40 31 | nil 'ma|cro).#@1|
|00003220| 39 38 20 28 73 68 69 66 | 74 66 20 50 4c 41 43 45 |98 (shif|tf PLACE|
|00003230| 20 50 4c 41 43 45 2e 2e | 2e 20 56 41 4c 29 3a 20 | PLACE..|. VAL): |
|00003240| 73 68 69 66 74 20 6c 65 | 66 74 20 61 6d 6f 6e 67 |shift le|ft among|
|00003250| 20 50 4c 41 43 45 73 2e | 0a 45 78 61 6d 70 6c 65 | PLACEs.|.Example|
|00003260| 3a 20 28 73 68 69 66 74 | 66 20 41 20 42 20 43 29 |: (shift|f A B C)|
|00003270| 20 73 65 74 73 20 41 20 | 74 6f 20 42 2c 20 42 20 | sets A |to B, B |
|00003280| 74 6f 20 43 2c 20 61 6e | 64 20 72 65 74 75 72 6e |to C, an|d return|
|00003290| 73 20 74 68 65 20 6f 6c | 64 20 41 2e 0a 45 61 63 |s the ol|d A..Eac|
|000032a0| 68 20 50 4c 41 43 45 20 | 6d 61 79 20 62 65 20 61 |h PLACE |may be a|
|000032b0| 20 73 79 6d 62 6f 6c 2c | 20 6f 72 20 61 6e 79 20 | symbol,| or any |
|000032c0| 67 65 6e 65 72 61 6c 69 | 7a 65 64 20 76 61 72 69 |generali|zed vari|
|000032d0| 61 62 6c 65 20 61 6c 6c | 6f 77 65 64 20 62 79 20 |able all|owed by |
|000032e0| 60 73 65 74 66 27 2e 1f | 0a 28 61 75 74 6f 6c 6f |`setf'..|.(autolo|
|000032f0| 61 64 20 27 73 68 69 66 | 74 66 20 22 63 6c 2d 6d |ad 'shif|tf "cl-m|
|00003300| 61 63 73 22 20 27 28 23 | 24 20 2e 20 31 32 38 33 |acs" '(#|$ . 1283|
|00003310| 35 29 20 6e 69 6c 20 27 | 6d 61 63 72 6f 29 0a 23 |5) nil '|macro).#|
|00003320| 40 31 39 37 20 28 72 6f | 74 61 74 65 66 20 50 4c |@197 (ro|tatef PL|
|00003330| 41 43 45 2e 2e 2e 29 3a | 20 72 6f 74 61 74 65 20 |ACE...):| rotate |
|00003340| 6c 65 66 74 20 61 6d 6f | 6e 67 20 50 4c 41 43 45 |left amo|ng PLACE|
|00003350| 73 2e 0a 45 78 61 6d 70 | 6c 65 3a 20 28 72 6f 74 |s..Examp|le: (rot|
|00003360| 61 74 65 66 20 41 20 42 | 20 43 29 20 73 65 74 73 |atef A B| C) sets|
|00003370| 20 41 20 74 6f 20 42 2c | 20 42 20 74 6f 20 43 2c | A to B,| B to C,|
|00003380| 20 61 6e 64 20 43 20 74 | 6f 20 41 2e 20 20 49 74 | and C t|o A. It|
|00003390| 20 72 65 74 75 72 6e 73 | 20 6e 69 6c 2e 0a 45 61 | returns| nil..Ea|
|000033a0| 63 68 20 50 4c 41 43 45 | 20 6d 61 79 20 62 65 20 |ch PLACE| may be |
|000033b0| 61 20 73 79 6d 62 6f 6c | 2c 20 6f 72 20 61 6e 79 |a symbol|, or any|
|000033c0| 20 67 65 6e 65 72 61 6c | 69 7a 65 64 20 76 61 72 | general|ized var|
|000033d0| 69 61 62 6c 65 20 61 6c | 6c 6f 77 65 64 20 62 79 |iable al|lowed by|
|000033e0| 20 60 73 65 74 66 27 2e | 1f 0a 28 61 75 74 6f 6c | `setf'.|..(autol|
|000033f0| 6f 61 64 20 27 72 6f 74 | 61 74 65 66 20 22 63 6c |oad 'rot|atef "cl|
|00003400| 2d 6d 61 63 73 22 20 27 | 28 23 24 20 2e 20 31 33 |-macs" '|(#$ . 13|
|00003410| 30 39 33 29 20 6e 69 6c | 20 27 6d 61 63 72 6f 29 |093) nil| 'macro)|
|00003420| 0a 23 40 35 33 33 20 28 | 6c 65 74 66 20 28 28 50 |.#@533 (|letf ((P|
|00003430| 4c 41 43 45 20 56 41 4c | 55 45 29 20 2e 2e 2e 29 |LACE VAL|UE) ...)|
|00003440| 20 42 4f 44 59 2e 2e 2e | 29 3a 20 74 65 6d 70 6f | BODY...|): tempo|
|00003450| 72 61 72 69 6c 79 20 62 | 69 6e 64 20 74 6f 20 50 |rarily b|ind to P|
|00003460| 4c 41 43 45 73 2e 0a 54 | 68 69 73 20 69 73 20 74 |LACEs..T|his is t|
|00003470| 68 65 20 61 6e 61 6c 6f | 67 75 65 20 6f 66 20 60 |he analo|gue of `|
|00003480| 6c 65 74 27 2c 20 62 75 | 74 20 77 69 74 68 20 67 |let', bu|t with g|
|00003490| 65 6e 65 72 61 6c 69 7a | 65 64 20 76 61 72 69 61 |eneraliz|ed varia|
|000034a0| 62 6c 65 73 20 28 69 6e | 20 74 68 65 0a 73 65 6e |bles (in| the.sen|
|000034b0| 73 65 20 6f 66 20 60 73 | 65 74 66 27 29 20 66 6f |se of `s|etf') fo|
|000034c0| 72 20 74 68 65 20 50 4c | 41 43 45 73 2e 20 20 45 |r the PL|ACEs. E|
|000034d0| 61 63 68 20 50 4c 41 43 | 45 20 69 73 20 73 65 74 |ach PLAC|E is set|
|000034e0| 20 74 6f 20 74 68 65 20 | 63 6f 72 72 65 73 70 6f | to the |correspo|
|000034f0| 6e 64 69 6e 67 0a 56 41 | 4c 55 45 2c 20 74 68 65 |nding.VA|LUE, the|
|00003500| 6e 20 74 68 65 20 42 4f | 44 59 20 66 6f 72 6d 73 |n the BO|DY forms|
|00003510| 20 61 72 65 20 65 78 65 | 63 75 74 65 64 2e 20 20 | are exe|cuted. |
|00003520| 4f 6e 20 65 78 69 74 2c | 20 65 69 74 68 65 72 20 |On exit,| either |
|00003530| 6e 6f 72 6d 61 6c 6c 79 | 20 6f 72 0a 62 65 63 61 |normally| or.beca|
|00003540| 75 73 65 20 6f 66 20 61 | 20 60 74 68 72 6f 77 27 |use of a| `throw'|
|00003550| 20 6f 72 20 65 72 72 6f | 72 2c 20 74 68 65 20 50 | or erro|r, the P|
|00003560| 4c 41 43 45 73 20 61 72 | 65 20 73 65 74 20 62 61 |LACEs ar|e set ba|
|00003570| 63 6b 20 74 6f 20 74 68 | 65 69 72 20 6f 72 69 67 |ck to th|eir orig|
|00003580| 69 6e 61 6c 0a 76 61 6c | 75 65 73 2e 20 20 4e 6f |inal.val|ues. No|
|00003590| 74 65 20 74 68 61 74 20 | 74 68 69 73 20 6d 61 63 |te that |this mac|
|000035a0| 72 6f 20 69 73 20 2a 6e | 6f 74 2a 20 61 76 61 69 |ro is *n|ot* avai|
|000035b0| 6c 61 62 6c 65 20 69 6e | 20 43 6f 6d 6d 6f 6e 20 |lable in| Common |
|000035c0| 4c 69 73 70 2e 0a 41 73 | 20 61 20 73 70 65 63 69 |Lisp..As| a speci|
|000035d0| 61 6c 20 63 61 73 65 2c | 20 69 66 20 60 28 50 4c |al case,| if `(PL|
|000035e0| 41 43 45 29 27 20 69 73 | 20 75 73 65 64 20 69 6e |ACE)' is| used in|
|000035f0| 73 74 65 61 64 20 6f 66 | 20 60 28 50 4c 41 43 45 |stead of| `(PLACE|
|00003600| 20 56 41 4c 55 45 29 27 | 2c 0a 74 68 65 20 50 4c | VALUE)'|,.the PL|
|00003610| 41 43 45 20 69 73 20 6e | 6f 74 20 6d 6f 64 69 66 |ACE is n|ot modif|
|00003620| 69 65 64 20 62 65 66 6f | 72 65 20 65 78 65 63 75 |ied befo|re execu|
|00003630| 74 69 6e 67 20 42 4f 44 | 59 2e 1f 0a 28 61 75 74 |ting BOD|Y...(aut|
|00003640| 6f 6c 6f 61 64 20 27 6c | 65 74 66 20 22 63 6c 2d |oload 'l|etf "cl-|
|00003650| 6d 61 63 73 22 20 27 28 | 23 24 20 2e 20 31 33 33 |macs" '(|#$ . 133|
|00003660| 35 31 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |51) nil |'macro).|
|00003670| 23 40 35 33 35 20 28 6c | 65 74 66 2a 20 28 28 50 |#@535 (l|etf* ((P|
|00003680| 4c 41 43 45 20 56 41 4c | 55 45 29 20 2e 2e 2e 29 |LACE VAL|UE) ...)|
|00003690| 20 42 4f 44 59 2e 2e 2e | 29 3a 20 74 65 6d 70 6f | BODY...|): tempo|
|000036a0| 72 61 72 69 6c 79 20 62 | 69 6e 64 20 74 6f 20 50 |rarily b|ind to P|
|000036b0| 4c 41 43 45 73 2e 0a 54 | 68 69 73 20 69 73 20 74 |LACEs..T|his is t|
|000036c0| 68 65 20 61 6e 61 6c 6f | 67 75 65 20 6f 66 20 60 |he analo|gue of `|
|000036d0| 6c 65 74 2a 27 2c 20 62 | 75 74 20 77 69 74 68 20 |let*', b|ut with |
|000036e0| 67 65 6e 65 72 61 6c 69 | 7a 65 64 20 76 61 72 69 |generali|zed vari|
|000036f0| 61 62 6c 65 73 20 28 69 | 6e 20 74 68 65 0a 73 65 |ables (i|n the.se|
|00003700| 6e 73 65 20 6f 66 20 60 | 73 65 74 66 27 29 20 66 |nse of `|setf') f|
|00003710| 6f 72 20 74 68 65 20 50 | 4c 41 43 45 73 2e 20 20 |or the P|LACEs. |
|00003720| 45 61 63 68 20 50 4c 41 | 43 45 20 69 73 20 73 65 |Each PLA|CE is se|
|00003730| 74 20 74 6f 20 74 68 65 | 20 63 6f 72 72 65 73 70 |t to the| corresp|
|00003740| 6f 6e 64 69 6e 67 0a 56 | 41 4c 55 45 2c 20 74 68 |onding.V|ALUE, th|
|00003750| 65 6e 20 74 68 65 20 42 | 4f 44 59 20 66 6f 72 6d |en the B|ODY form|
|00003760| 73 20 61 72 65 20 65 78 | 65 63 75 74 65 64 2e 20 |s are ex|ecuted. |
|00003770| 20 4f 6e 20 65 78 69 74 | 2c 20 65 69 74 68 65 72 | On exit|, either|
|00003780| 20 6e 6f 72 6d 61 6c 6c | 79 20 6f 72 0a 62 65 63 | normall|y or.bec|
|00003790| 61 75 73 65 20 6f 66 20 | 61 20 60 74 68 72 6f 77 |ause of |a `throw|
|000037a0| 27 20 6f 72 20 65 72 72 | 6f 72 2c 20 74 68 65 20 |' or err|or, the |
|000037b0| 50 4c 41 43 45 73 20 61 | 72 65 20 73 65 74 20 62 |PLACEs a|re set b|
|000037c0| 61 63 6b 20 74 6f 20 74 | 68 65 69 72 20 6f 72 69 |ack to t|heir ori|
|000037d0| 67 69 6e 61 6c 0a 76 61 | 6c 75 65 73 2e 20 20 4e |ginal.va|lues. N|
|000037e0| 6f 74 65 20 74 68 61 74 | 20 74 68 69 73 20 6d 61 |ote that| this ma|
|000037f0| 63 72 6f 20 69 73 20 2a | 6e 6f 74 2a 20 61 76 61 |cro is *|not* ava|
|00003800| 69 6c 61 62 6c 65 20 69 | 6e 20 43 6f 6d 6d 6f 6e |ilable i|n Common|
|00003810| 20 4c 69 73 70 2e 0a 41 | 73 20 61 20 73 70 65 63 | Lisp..A|s a spec|
|00003820| 69 61 6c 20 63 61 73 65 | 2c 20 69 66 20 60 28 50 |ial case|, if `(P|
|00003830| 4c 41 43 45 29 27 20 69 | 73 20 75 73 65 64 20 69 |LACE)' i|s used i|
|00003840| 6e 73 74 65 61 64 20 6f | 66 20 60 28 50 4c 41 43 |nstead o|f `(PLAC|
|00003850| 45 20 56 41 4c 55 45 29 | 27 2c 0a 74 68 65 20 50 |E VALUE)|',.the P|
|00003860| 4c 41 43 45 20 69 73 20 | 6e 6f 74 20 6d 6f 64 69 |LACE is |not modi|
|00003870| 66 69 65 64 20 62 65 66 | 6f 72 65 20 65 78 65 63 |fied bef|ore exec|
|00003880| 75 74 69 6e 67 20 42 4f | 44 59 2e 1f 0a 28 61 75 |uting BO|DY...(au|
|00003890| 74 6f 6c 6f 61 64 20 27 | 6c 65 74 66 2a 20 22 63 |toload '|letf* "c|
|000038a0| 6c 2d 6d 61 63 73 22 20 | 27 28 23 24 20 2e 20 31 |l-macs" |'(#$ . 1|
|000038b0| 33 39 34 32 29 20 6e 69 | 6c 20 27 6d 61 63 72 6f |3942) ni|l 'macro|
|000038c0| 29 0a 23 40 31 37 37 20 | 28 63 61 6c 6c 66 20 46 |).#@177 |(callf F|
|000038d0| 55 4e 43 20 50 4c 41 43 | 45 20 41 52 47 53 2e 2e |UNC PLAC|E ARGS..|
|000038e0| 2e 29 3a 20 73 65 74 20 | 50 4c 41 43 45 20 74 6f |.): set |PLACE to|
|000038f0| 20 28 46 55 4e 43 20 50 | 4c 41 43 45 20 41 52 47 | (FUNC P|LACE ARG|
|00003900| 53 2e 2e 2e 29 2e 0a 46 | 55 4e 43 20 73 68 6f 75 |S...)..F|UNC shou|
|00003910| 6c 64 20 62 65 20 61 6e | 20 75 6e 71 75 6f 74 65 |ld be an| unquote|
|00003920| 64 20 66 75 6e 63 74 69 | 6f 6e 20 6e 61 6d 65 2e |d functi|on name.|
|00003930| 20 20 50 4c 41 43 45 20 | 6d 61 79 20 62 65 20 61 | PLACE |may be a|
|00003940| 20 73 79 6d 62 6f 6c 2c | 0a 6f 72 20 61 6e 79 20 | symbol,|.or any |
|00003950| 67 65 6e 65 72 61 6c 69 | 7a 65 64 20 76 61 72 69 |generali|zed vari|
|00003960| 61 62 6c 65 20 61 6c 6c | 6f 77 65 64 20 62 79 20 |able all|owed by |
|00003970| 60 73 65 74 66 27 2e 1f | 0a 28 61 75 74 6f 6c 6f |`setf'..|.(autolo|
|00003980| 61 64 20 27 63 61 6c 6c | 66 20 22 63 6c 2d 6d 61 |ad 'call|f "cl-ma|
|00003990| 63 73 22 20 27 28 23 24 | 20 2e 20 31 34 35 33 36 |cs" '(#$| . 14536|
|000039a0| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 23 40 |) nil 'm|acro).#@|
|000039b0| 31 34 36 20 28 63 61 6c | 6c 66 32 20 46 55 4e 43 |146 (cal|lf2 FUNC|
|000039c0| 20 41 52 47 31 20 50 4c | 41 43 45 20 41 52 47 53 | ARG1 PL|ACE ARGS|
|000039d0| 2e 2e 2e 29 3a 20 73 65 | 74 20 50 4c 41 43 45 20 |...): se|t PLACE |
|000039e0| 74 6f 20 28 46 55 4e 43 | 20 41 52 47 31 20 50 4c |to (FUNC| ARG1 PL|
|000039f0| 41 43 45 20 41 52 47 53 | 2e 2e 2e 29 2e 0a 4c 69 |ACE ARGS|...)..Li|
|00003a00| 6b 65 20 60 63 61 6c 6c | 66 27 2c 20 62 75 74 20 |ke `call|f', but |
|00003a10| 50 4c 41 43 45 20 69 73 | 20 74 68 65 20 73 65 63 |PLACE is| the sec|
|00003a20| 6f 6e 64 20 61 72 67 75 | 6d 65 6e 74 20 6f 66 20 |ond argu|ment of |
|00003a30| 46 55 4e 43 2c 20 6e 6f | 74 20 74 68 65 20 66 69 |FUNC, no|t the fi|
|00003a40| 72 73 74 2e 1f 0a 28 61 | 75 74 6f 6c 6f 61 64 20 |rst...(a|utoload |
|00003a50| 27 63 61 6c 6c 66 32 20 | 22 63 6c 2d 6d 61 63 73 |'callf2 |"cl-macs|
|00003a60| 22 20 27 28 23 24 20 2e | 20 31 34 37 37 32 29 20 |" '(#$ .| 14772) |
|00003a70| 6e 69 6c 20 27 6d 61 63 | 72 6f 29 0a 23 40 32 32 |nil 'mac|ro).#@22|
|00003a80| 34 20 28 64 65 66 69 6e | 65 2d 6d 6f 64 69 66 79 |4 (defin|e-modify|
|00003a90| 2d 6d 61 63 72 6f 20 4e | 41 4d 45 20 41 52 47 4c |-macro N|AME ARGL|
|00003aa0| 49 53 54 20 46 55 4e 43 | 29 3a 20 64 65 66 69 6e |IST FUNC|): defin|
|00003ab0| 65 20 61 20 60 73 65 74 | 66 27 2d 6c 69 6b 65 20 |e a `set|f'-like |
|00003ac0| 6d 6f 64 69 66 79 20 6d | 61 63 72 6f 2e 0a 49 66 |modify m|acro..If|
|00003ad0| 20 4e 41 4d 45 20 69 73 | 20 63 61 6c 6c 65 64 2c | NAME is| called,|
|00003ae0| 20 69 74 20 63 6f 6d 62 | 69 6e 65 73 20 69 74 73 | it comb|ines its|
|00003af0| 20 50 4c 41 43 45 20 61 | 72 67 75 6d 65 6e 74 20 | PLACE a|rgument |
|00003b00| 77 69 74 68 20 74 68 65 | 20 6f 74 68 65 72 20 61 |with the| other a|
|00003b10| 72 67 75 6d 65 6e 74 73 | 0a 66 72 6f 6d 20 41 52 |rguments|.from AR|
|00003b20| 47 4c 49 53 54 20 75 73 | 69 6e 67 20 46 55 4e 43 |GLIST us|ing FUNC|
|00003b30| 3a 20 28 64 65 66 69 6e | 65 2d 6d 6f 64 69 66 79 |: (defin|e-modify|
|00003b40| 2d 6d 61 63 72 6f 20 69 | 6e 63 66 20 28 26 6f 70 |-macro i|ncf (&op|
|00003b50| 74 69 6f 6e 61 6c 20 28 | 6e 20 31 29 29 20 2b 29 |tional (|n 1)) +)|
|00003b60| 1f 0a 28 61 75 74 6f 6c | 6f 61 64 20 27 64 65 66 |..(autol|oad 'def|
|00003b70| 69 6e 65 2d 6d 6f 64 69 | 66 79 2d 6d 61 63 72 6f |ine-modi|fy-macro|
|00003b80| 20 22 63 6c 2d 6d 61 63 | 73 22 20 27 28 23 24 20 | "cl-mac|s" '(#$ |
|00003b90| 2e 20 31 34 39 37 38 29 | 20 6e 69 6c 20 27 6d 61 |. 14978)| nil 'ma|
|00003ba0| 63 72 6f 29 0a 23 40 32 | 38 39 20 28 64 65 66 73 |cro).#@2|89 (defs|
|00003bb0| 74 72 75 63 74 20 28 4e | 41 4d 45 20 4f 50 54 49 |truct (N|AME OPTI|
|00003bc0| 4f 4e 53 2e 2e 2e 29 20 | 28 53 4c 4f 54 20 53 4c |ONS...) |(SLOT SL|
|00003bd0| 4f 54 2d 4f 50 54 53 2e | 2e 2e 29 2e 2e 2e 29 3a |OT-OPTS.|..)...):|
|00003be0| 20 64 65 66 69 6e 65 20 | 61 20 73 74 72 75 63 74 | define |a struct|
|00003bf0| 20 74 79 70 65 2e 0a 54 | 68 69 73 20 6d 61 63 72 | type..T|his macr|
|00003c00| 6f 20 64 65 66 69 6e 65 | 73 20 61 20 6e 65 77 20 |o define|s a new |
|00003c10| 4c 69 73 70 20 64 61 74 | 61 20 74 79 70 65 20 63 |Lisp dat|a type c|
|00003c20| 61 6c 6c 65 64 20 4e 41 | 4d 45 2c 20 77 68 69 63 |alled NA|ME, whic|
|00003c30| 68 20 63 6f 6e 74 61 69 | 6e 73 20 64 61 74 61 0a |h contai|ns data.|
|00003c40| 73 74 6f 72 65 64 20 69 | 6e 20 53 4c 4f 54 73 2e |stored i|n SLOTs.|
|00003c50| 20 20 54 68 69 73 20 64 | 65 66 69 6e 65 73 20 61 | This d|efines a|
|00003c60| 20 60 6d 61 6b 65 2d 4e | 41 4d 45 27 20 63 6f 6e | `make-N|AME' con|
|00003c70| 73 74 72 75 63 74 6f 72 | 2c 20 61 20 60 63 6f 70 |structor|, a `cop|
|00003c80| 79 2d 4e 41 4d 45 27 0a | 63 6f 70 69 65 72 2c 20 |y-NAME'.|copier, |
|00003c90| 61 20 60 4e 41 4d 45 2d | 70 27 20 70 72 65 64 69 |a `NAME-|p' predi|
|00003ca0| 63 61 74 65 2c 20 61 6e | 64 20 73 65 74 66 2d 61 |cate, an|d setf-a|
|00003cb0| 62 6c 65 20 60 4e 41 4d | 45 2d 53 4c 4f 54 27 20 |ble `NAM|E-SLOT' |
|00003cc0| 61 63 63 65 73 73 6f 72 | 73 2e 1f 0a 28 61 75 74 |accessor|s...(aut|
|00003cd0| 6f 6c 6f 61 64 20 27 64 | 65 66 73 74 72 75 63 74 |oload 'd|efstruct|
|00003ce0| 20 22 63 6c 2d 6d 61 63 | 73 22 20 27 28 23 24 20 | "cl-mac|s" '(#$ |
|00003cf0| 2e 20 31 35 32 37 35 29 | 20 6e 69 6c 20 27 6d 61 |. 15275)| nil 'ma|
|00003d00| 63 72 6f 29 0a 28 62 79 | 74 65 2d 63 6f 64 65 20 |cro).(by|te-code |
|00003d10| 22 c0 c1 c2 c3 89 89 25 | 87 22 20 5b 61 75 74 6f |"......%|." [auto|
|00003d20| 6c 6f 61 64 20 63 6c 2d | 73 74 72 75 63 74 2d 73 |load cl-|struct-s|
|00003d30| 65 74 66 2d 65 78 70 61 | 6e 64 65 72 20 22 63 6c |etf-expa|nder "cl|
|00003d40| 2d 6d 61 63 73 22 20 6e | 69 6c 5d 20 36 29 0a 23 |-macs" n|il] 6).#|
|00003d50| 40 31 33 30 20 28 64 65 | 66 74 79 70 65 20 4e 41 |@130 (de|ftype NA|
|00003d60| 4d 45 20 41 52 47 4c 49 | 53 54 20 42 4f 44 59 2e |ME ARGLI|ST BODY.|
|00003d70| 2e 2e 29 3a 20 64 65 66 | 69 6e 65 20 4e 41 4d 45 |..): def|ine NAME|
|00003d80| 20 61 73 20 61 20 6e 65 | 77 20 64 61 74 61 20 74 | as a ne|w data t|
|00003d90| 79 70 65 2e 0a 54 68 65 | 20 74 79 70 65 20 6e 61 |ype..The| type na|
|00003da0| 6d 65 20 63 61 6e 20 74 | 68 65 6e 20 62 65 20 75 |me can t|hen be u|
|00003db0| 73 65 64 20 69 6e 20 60 | 74 79 70 65 63 61 73 65 |sed in `|typecase|
|00003dc0| 27 2c 20 60 63 68 65 63 | 6b 2d 74 79 70 65 27 2c |', `chec|k-type',|
|00003dd0| 20 65 74 63 2e 1f 0a 28 | 61 75 74 6f 6c 6f 61 64 | etc...(|autoload|
|00003de0| 20 27 64 65 66 74 79 70 | 65 20 22 63 6c 2d 6d 61 | 'deftyp|e "cl-ma|
|00003df0| 63 73 22 20 27 28 23 24 | 20 2e 20 31 35 37 30 31 |cs" '(#$| . 15701|
|00003e00| 29 20 6e 69 6c 20 27 6d | 61 63 72 6f 29 0a 23 40 |) nil 'm|acro).#@|
|00003e10| 38 30 20 43 68 65 63 6b | 20 74 68 61 74 20 4f 42 |80 Check| that OB|
|00003e20| 4a 45 43 54 20 69 73 20 | 6f 66 20 74 79 70 65 20 |JECT is |of type |
|00003e30| 54 59 50 45 2e 0a 54 59 | 50 45 20 69 73 20 61 20 |TYPE..TY|PE is a |
|00003e40| 43 6f 6d 6d 6f 6e 20 4c | 69 73 70 2d 73 74 79 6c |Common L|isp-styl|
|00003e50| 65 20 74 79 70 65 20 73 | 70 65 63 69 66 69 65 72 |e type s|pecifier|
|00003e60| 2e 1f 0a 28 61 75 74 6f | 6c 6f 61 64 20 27 74 79 |...(auto|load 'ty|
|00003e70| 70 65 70 20 22 63 6c 2d | 6d 61 63 73 22 20 27 28 |pep "cl-|macs" '(|
|00003e80| 23 24 20 2e 20 31 35 38 | 39 31 29 20 6e 69 6c 20 |#$ . 158|91) nil |
|00003e90| 6e 69 6c 29 0a 23 40 31 | 31 34 20 56 65 72 69 66 |nil).#@1|14 Verif|
|00003ea0| 79 20 74 68 61 74 20 46 | 4f 52 4d 20 69 73 20 6f |y that F|ORM is o|
|00003eb0| 66 20 74 79 70 65 20 54 | 59 50 45 3b 20 73 69 67 |f type T|YPE; sig|
|00003ec0| 6e 61 6c 20 61 6e 20 65 | 72 72 6f 72 20 69 66 20 |nal an e|rror if |
|00003ed0| 6e 6f 74 2e 0a 53 54 52 | 49 4e 47 20 69 73 20 61 |not..STR|ING is a|
|00003ee0| 6e 20 6f 70 74 69 6f 6e | 61 6c 20 64 65 73 63 72 |n option|al descr|
|00003ef0| 69 70 74 69 6f 6e 20 6f | 66 20 74 68 65 20 64 65 |iption o|f the de|
|00003f00| 73 69 72 65 64 20 74 79 | 70 65 2e 1f 0a 28 61 75 |sired ty|pe...(au|
|00003f10| 74 6f 6c 6f 61 64 20 27 | 63 68 65 63 6b 2d 74 79 |toload '|check-ty|
|00003f20| 70 65 20 22 63 6c 2d 6d | 61 63 73 22 20 27 28 23 |pe "cl-m|acs" '(#|
|00003f30| 24 20 2e 20 31 36 30 32 | 37 29 20 6e 69 6c 20 27 |$ . 1602|7) nil '|
|00003f40| 6d 61 63 72 6f 29 0a 23 | 40 33 31 37 20 56 65 72 |macro).#|@317 Ver|
|00003f50| 69 66 79 20 74 68 61 74 | 20 46 4f 52 4d 20 72 65 |ify that| FORM re|
|00003f60| 74 75 72 6e 73 20 6e 6f | 6e 2d 6e 69 6c 3b 20 73 |turns no|n-nil; s|
|00003f70| 69 67 6e 61 6c 20 61 6e | 20 65 72 72 6f 72 20 69 |ignal an| error i|
|00003f80| 66 20 6e 6f 74 2e 0a 53 | 65 63 6f 6e 64 20 61 72 |f not..S|econd ar|
|00003f90| 67 20 53 48 4f 57 2d 41 | 52 47 53 20 6d 65 61 6e |g SHOW-A|RGS mean|
|00003fa0| 73 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 61 72 67 |s to inc|lude arg|
|00003fb0| 75 6d 65 6e 74 73 20 6f | 66 20 46 4f 52 4d 20 69 |uments o|f FORM i|
|00003fc0| 6e 20 6d 65 73 73 61 67 | 65 2e 0a 4f 74 68 65 72 |n messag|e..Other|
|00003fd0| 20 61 72 67 73 20 53 54 | 52 49 4e 47 20 61 6e 64 | args ST|RING and|
|00003fe0| 20 41 52 47 53 2e 2e 2e | 20 61 72 65 20 61 72 67 | ARGS...| are arg|
|00003ff0| 75 6d 65 6e 74 73 20 74 | 6f 20 62 65 20 70 61 73 |uments t|o be pas|
|00004000| 73 65 64 20 74 6f 20 60 | 65 72 72 6f 72 27 2e 0a |sed to `|error'..|
|00004010| 54 68 65 79 20 61 72 65 | 20 6e 6f 74 20 65 76 61 |They are| not eva|
|00004020| 6c 75 61 74 65 64 20 75 | 6e 6c 65 73 73 20 74 68 |luated u|nless th|
|00004030| 65 20 61 73 73 65 72 74 | 69 6f 6e 20 66 61 69 6c |e assert|ion fail|
|00004040| 73 2e 20 20 49 66 20 53 | 54 52 49 4e 47 20 69 73 |s. If S|TRING is|
|00004050| 0a 6f 6d 69 74 74 65 64 | 2c 20 61 20 64 65 66 61 |.omitted|, a defa|
|00004060| 75 6c 74 20 6d 65 73 73 | 61 67 65 20 6c 69 73 74 |ult mess|age list|
|00004070| 69 6e 67 20 46 4f 52 4d | 20 69 74 73 65 6c 66 20 |ing FORM| itself |
|00004080| 69 73 20 75 73 65 64 2e | 1f 0a 28 61 75 74 6f 6c |is used.|..(autol|
|00004090| 6f 61 64 20 27 61 73 73 | 65 72 74 20 22 63 6c 2d |oad 'ass|ert "cl-|
|000040a0| 6d 61 63 73 22 20 27 28 | 23 24 20 2e 20 31 36 32 |macs" '(|#$ . 162|
|000040b0| 30 35 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |05) nil |'macro).|
|000040c0| 23 40 38 37 20 45 78 65 | 63 75 74 65 20 46 4f 52 |#@87 Exe|cute FOR|
|000040d0| 4d 53 3b 20 69 66 20 61 | 6e 20 65 72 72 6f 72 20 |MS; if a|n error |
|000040e0| 6f 63 63 75 72 73 2c 20 | 72 65 74 75 72 6e 20 6e |occurs, |return n|
|000040f0| 69 6c 2e 0a 4f 74 68 65 | 72 77 69 73 65 2c 20 72 |il..Othe|rwise, r|
|00004100| 65 74 75 72 6e 20 72 65 | 73 75 6c 74 20 6f 66 20 |eturn re|sult of |
|00004110| 6c 61 73 74 20 46 4f 52 | 4d 2e 1f 0a 28 61 75 74 |last FOR|M...(aut|
|00004120| 6f 6c 6f 61 64 20 27 69 | 67 6e 6f 72 65 2d 65 72 |oload 'i|gnore-er|
|00004130| 72 6f 72 73 20 22 63 6c | 2d 6d 61 63 73 22 20 27 |rors "cl|-macs" '|
|00004140| 28 23 24 20 2e 20 31 36 | 35 38 31 29 20 6e 69 6c |(#$ . 16|581) nil|
|00004150| 20 27 6d 61 63 72 6f 29 | 0a 23 40 36 38 34 20 28 | 'macro)|.#@684 (|
|00004160| 64 65 66 69 6e 65 2d 63 | 6f 6d 70 69 6c 65 72 2d |define-c|ompiler-|
|00004170| 6d 61 63 72 6f 20 46 55 | 4e 43 20 41 52 47 4c 49 |macro FU|NC ARGLI|
|00004180| 53 54 20 42 4f 44 59 2e | 2e 2e 29 3a 20 44 65 66 |ST BODY.|..): Def|
|00004190| 69 6e 65 20 61 20 63 6f | 6d 70 69 6c 65 72 2d 6f |ine a co|mpiler-o|
|000041a0| 6e 6c 79 20 6d 61 63 72 | 6f 2e 0a 54 68 69 73 20 |nly macr|o..This |
|000041b0| 69 73 20 6c 69 6b 65 20 | 60 64 65 66 6d 61 63 72 |is like |`defmacr|
|000041c0| 6f 27 2c 20 62 75 74 20 | 6d 61 63 72 6f 20 65 78 |o', but |macro ex|
|000041d0| 70 61 6e 73 69 6f 6e 20 | 6f 63 63 75 72 73 20 6f |pansion |occurs o|
|000041e0| 6e 6c 79 20 69 66 20 74 | 68 65 20 63 61 6c 6c 20 |nly if t|he call |
|000041f0| 74 6f 0a 46 55 4e 43 20 | 69 73 20 63 6f 6d 70 69 |to.FUNC |is compi|
|00004200| 6c 65 64 20 28 69 2e 65 | 2e 2c 20 6e 6f 74 20 69 |led (i.e|., not i|
|00004210| 6e 74 65 72 70 72 65 74 | 65 64 29 2e 20 20 43 6f |nterpret|ed). Co|
|00004220| 6d 70 69 6c 65 72 20 6d | 61 63 72 6f 73 20 73 68 |mpiler m|acros sh|
|00004230| 6f 75 6c 64 20 62 65 20 | 75 73 65 64 0a 66 6f 72 |ould be |used.for|
|00004240| 20 6f 70 74 69 6d 69 7a | 69 6e 67 20 74 68 65 20 | optimiz|ing the |
|00004250| 77 61 79 20 63 61 6c 6c | 73 20 74 6f 20 46 55 4e |way call|s to FUN|
|00004260| 43 20 61 72 65 20 63 6f | 6d 70 69 6c 65 64 3b 20 |C are co|mpiled; |
|00004270| 74 68 65 20 66 6f 72 6d | 20 72 65 74 75 72 6e 65 |the form| returne|
|00004280| 64 20 62 79 0a 42 4f 44 | 59 20 73 68 6f 75 6c 64 |d by.BOD|Y should|
|00004290| 20 64 6f 20 74 68 65 20 | 73 61 6d 65 20 74 68 69 | do the |same thi|
|000042a0| 6e 67 20 61 73 20 61 20 | 63 61 6c 6c 20 74 6f 20 |ng as a |call to |
|000042b0| 74 68 65 20 6e 6f 72 6d | 61 6c 20 66 75 6e 63 74 |the norm|al funct|
|000042c0| 69 6f 6e 20 63 61 6c 6c | 65 64 0a 46 55 4e 43 2c |ion call|ed.FUNC,|
|000042d0| 20 74 68 6f 75 67 68 20 | 70 6f 73 73 69 62 6c 79 | though |possibly|
|000042e0| 20 6d 6f 72 65 20 65 66 | 66 69 63 69 65 6e 74 6c | more ef|ficientl|
|000042f0| 79 2e 20 20 4e 6f 74 65 | 20 74 68 61 74 2c 20 6c |y. Note| that, l|
|00004300| 69 6b 65 20 72 65 67 75 | 6c 61 72 20 6d 61 63 72 |ike regu|lar macr|
|00004310| 6f 73 2c 0a 63 6f 6d 70 | 69 6c 65 72 20 6d 61 63 |os,.comp|iler mac|
|00004320| 72 6f 73 20 61 72 65 20 | 65 78 70 61 6e 64 65 64 |ros are |expanded|
|00004330| 20 72 65 70 65 61 74 65 | 64 6c 79 20 75 6e 74 69 | repeate|dly unti|
|00004340| 6c 20 6e 6f 20 66 75 72 | 74 68 65 72 20 65 78 70 |l no fur|ther exp|
|00004350| 61 6e 73 69 6f 6e 73 20 | 61 72 65 0a 70 6f 73 73 |ansions |are.poss|
|00004360| 69 62 6c 65 2e 20 20 55 | 6e 6c 69 6b 65 20 72 65 |ible. U|nlike re|
|00004370| 67 75 6c 61 72 20 6d 61 | 63 72 6f 73 2c 20 42 4f |gular ma|cros, BO|
|00004380| 44 59 20 63 61 6e 20 64 | 65 63 69 64 65 20 74 6f |DY can d|ecide to|
|00004390| 20 22 70 75 6e 74 22 20 | 61 6e 64 20 6c 65 61 76 | "punt" |and leav|
|000043a0| 65 20 74 68 65 0a 6f 72 | 69 67 69 6e 61 6c 20 66 |e the.or|iginal f|
|000043b0| 75 6e 63 74 69 6f 6e 20 | 63 61 6c 6c 20 61 6c 6f |unction |call alo|
|000043c0| 6e 65 20 62 79 20 64 65 | 63 6c 61 72 69 6e 67 20 |ne by de|claring |
|000043d0| 61 6e 20 69 6e 69 74 69 | 61 6c 20 60 26 77 68 6f |an initi|al `&who|
|000043e0| 6c 65 20 66 6f 6f 27 20 | 70 61 72 61 6d 65 74 65 |le foo' |paramete|
|000043f0| 72 0a 61 6e 64 20 74 68 | 65 6e 20 72 65 74 75 72 |r.and th|en retur|
|00004400| 6e 69 6e 67 20 66 6f 6f | 2e 1f 0a 28 61 75 74 6f |ning foo|...(auto|
|00004410| 6c 6f 61 64 20 27 64 65 | 66 69 6e 65 2d 63 6f 6d |load 'de|fine-com|
|00004420| 70 69 6c 65 72 2d 6d 61 | 63 72 6f 20 22 63 6c 2d |piler-ma|cro "cl-|
|00004430| 6d 61 63 73 22 20 27 28 | 23 24 20 2e 20 31 36 37 |macs" '(|#$ . 167|
|00004440| 33 35 29 20 6e 69 6c 20 | 27 6d 61 63 72 6f 29 0a |35) nil |'macro).|
|00004450| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c0 c1 c2 c3 |(byte-co|de "....|
|00004460| 89 89 25 87 22 20 5b 61 | 75 74 6f 6c 6f 61 64 20 |..%." [a|utoload |
|00004470| 63 6f 6d 70 69 6c 65 72 | 2d 6d 61 63 72 6f 65 78 |compiler|-macroex|
|00004480| 70 61 6e 64 20 22 63 6c | 2d 6d 61 63 73 22 20 6e |pand "cl|-macs" n|
|00004490| 69 6c 5d 20 36 29 0a | |il] 6). | |
+--------+-------------------------+-------------------------+--------+--------+